generic.json 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950
  1. {
  2. /// These are objects that can not be configured, either due to
  3. /// their hardcoded status or because they don't have any configurable functionality
  4. "prison" : {
  5. "index" :62,
  6. "handler": "prison",
  7. "base" : {
  8. "sounds" : {
  9. "visit" : ["ROGUE"]
  10. }
  11. },
  12. "types" : {
  13. "prison" : {
  14. "index" : 0,
  15. "aiValue" : 5000,
  16. "removable": true
  17. }
  18. }
  19. },
  20. "altarOfSacrifice" : {
  21. "index" :2,
  22. "handler" : "market",
  23. "base" : {
  24. "sounds" : {
  25. "visit" : ["MYSTERY"]
  26. }
  27. },
  28. "types" : {
  29. "object" : {
  30. "index" : 0,
  31. "aiValue" : 100,
  32. "rmg" : {
  33. "zoneLimit" : 1,
  34. "value" : 100,
  35. "rarity" : 20
  36. },
  37. "modes" : ["creature-experience", "artifact-experience"]
  38. }
  39. }
  40. },
  41. "tradingPost" : {
  42. "index" :221,
  43. "handler" : "market",
  44. "base" : {
  45. "sounds" : {
  46. "ambient" : ["LOOPMARK"],
  47. "visit" : ["STORE"]
  48. }
  49. },
  50. "types" : {
  51. "object" : {
  52. "index" : 0,
  53. "aiValue" : 100,
  54. "rmg" : {
  55. "zoneLimit" : 1,
  56. "value" : 100,
  57. "rarity" : 100
  58. },
  59. "modes" : ["resource-resource", "resource-player"],
  60. "efficiency" : 5,
  61. "title" : "core.genrltxt.159"
  62. }
  63. }
  64. },
  65. "tradingPostDUPLICATE" : {
  66. "index" :99,
  67. "handler" : "market",
  68. "base" : {
  69. "sounds" : {
  70. "ambient" : ["LOOPMARK"],
  71. "visit" : ["STORE"]
  72. }
  73. },
  74. "types" : {
  75. "object" : {
  76. "index" : 0,
  77. "aiValue" : 100,
  78. "rmg" : {
  79. "zoneLimit" : 1,
  80. "value" : 100,
  81. "rarity" : 100
  82. },
  83. "modes" : ["resource-resource", "resource-player"],
  84. "efficiency" : 5,
  85. "title" : "core.genrltxt.159"
  86. }
  87. }
  88. },
  89. "freelancersGuild" : {
  90. "index" :213,
  91. "handler" : "market",
  92. "types" : {
  93. "object" : {
  94. "index" : 0,
  95. "aiValue" : 100,
  96. "rmg" : {
  97. "zoneLimit" : 1,
  98. "value" : 100,
  99. "rarity" : 100
  100. },
  101. "modes" : ["creature-resource"]
  102. }
  103. }
  104. },
  105. "blackMarket" : {
  106. "index" :7,
  107. "handler" : "market",
  108. "base" : {
  109. "sounds" : {
  110. "ambient" : ["LOOPMARK"],
  111. "visit" : ["MYSTERY"]
  112. }
  113. },
  114. "types" : {
  115. "object" : {
  116. "index" : 0,
  117. "aiValue" : 8000,
  118. "rmg" : {
  119. "value" : 8000,
  120. "rarity" : 20
  121. },
  122. "modes" : ["resource-artifact"],
  123. "title" : "core.genrltxt.349"
  124. }
  125. }
  126. },
  127. "pandoraBox" : {
  128. "index" :6,
  129. "handler" : "pandora",
  130. "base" : {
  131. "sounds" : {
  132. "visit" : ["MYSTERY"],
  133. "removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
  134. }
  135. },
  136. "types" : {
  137. "object" : {
  138. "index" : 0,
  139. "aiValue" : 10000,
  140. "removable": true,
  141. "templates" : {
  142. "normal" : { "animation" : "ava0128.def", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  143. },
  144. "rmg" : {
  145. }
  146. }
  147. }
  148. },
  149. "event" : {
  150. "index" :26,
  151. "handler" : "event",
  152. "types" : {
  153. "object" : {
  154. "index" : 0,
  155. "removable": true,
  156. "rmg" : {
  157. }
  158. }
  159. }
  160. },
  161. "whirlpool" : {
  162. "index" :111,
  163. "handler" : "whirlpool",
  164. "base" : {
  165. "sounds" : {
  166. "ambient" : ["LOOPWHIR"],
  167. "visit" : ["DANGER"]
  168. }
  169. },
  170. "types" : {
  171. "object" : {
  172. "index" : 0,
  173. "rmg" : {
  174. }
  175. }
  176. }
  177. },
  178. "subterraneanGate" : {
  179. "index" :103,
  180. "handler" : "subterraneanGate",
  181. "base" : {
  182. "sounds" : {
  183. "ambient" : ["LOOPGATE"],
  184. "visit" : ["CAVEHEAD"]
  185. }
  186. },
  187. "types" : {
  188. "object" : {
  189. "index" : 0
  190. }
  191. }
  192. },
  193. "refugeeCamp" : {
  194. "index" :78,
  195. "handler" : "dwelling",
  196. "base" : {
  197. "sounds" : {
  198. "ambient" : ["LOOPMERC"],
  199. "visit" : ["MILITARY"]
  200. }
  201. },
  202. "types" : {
  203. "object" : {
  204. "index" : 0,
  205. "aiValue" : 2000,
  206. "rmg" : {
  207. "value" : 5000,
  208. "rarity" : 20
  209. }
  210. }
  211. }
  212. },
  213. "warMachineFactory" : {
  214. "index" :106,
  215. "handler" : "dwelling",
  216. "base" : {
  217. "sounds" : {
  218. "ambient" : ["LOOPFACT"],
  219. "visit" : ["MILITARY"]
  220. }
  221. },
  222. "types" : {
  223. "object" : {
  224. "index" : 0,
  225. "aiValue" : 1500,
  226. "rmg" : {
  227. "zoneLimit" : 1,
  228. "value" : 1500,
  229. "rarity" : 50
  230. }
  231. }
  232. }
  233. },
  234. "eyeOfTheMagi" : {
  235. "index" :27,
  236. "handler" : "magi",
  237. "base" : {
  238. "sounds" : {
  239. "visit" : ["LIGHTHOUSE"]
  240. }
  241. },
  242. "types" : {
  243. "object" : {
  244. "index" : 0,
  245. "aiValue" : 0,
  246. "rmg" : {
  247. }
  248. }
  249. }
  250. },
  251. "hutOfTheMagi" : {
  252. "index" :37,
  253. "handler" : "magi",
  254. "base" : {
  255. "sounds" : {
  256. "visit" : ["LIGHTHOUSE"]
  257. }
  258. },
  259. "types" : {
  260. "object" : {
  261. "index" : 0,
  262. "aiValue" : 750,
  263. "rmg" : {
  264. }
  265. }
  266. }
  267. },
  268. "lighthouse" : {
  269. "index" :42,
  270. "handler" : "lighthouse",
  271. "base" : {
  272. "sounds" : {
  273. "visit" : ["LIGHTHOUSE"]
  274. }
  275. },
  276. "types" : {
  277. "object" : {
  278. "index" : 0,
  279. "aiValue" : 500,
  280. "rmg" : {
  281. }
  282. }
  283. }
  284. },
  285. "obelisk" : {
  286. "index" :57,
  287. "handler" : "obelisk",
  288. "base" : {
  289. "sounds" : {
  290. "visit" : ["MYSTERY"]
  291. }
  292. },
  293. "types" : {
  294. "object" : {
  295. "index" : 0,
  296. "aiValue" : 350,
  297. "rmg" : {
  298. "mapLimit" : 48,
  299. "value" : 3500,
  300. "rarity" : 200
  301. }
  302. }
  303. }
  304. },
  305. "oceanBottle" : {
  306. "index" :59,
  307. "handler" : "sign",
  308. "base" : {
  309. "sounds" : {
  310. "visit" : ["STORE"]
  311. }
  312. },
  313. "types" : {
  314. "object" : {
  315. "index" : 0,
  316. "aiValue" : 0,
  317. "removable": true,
  318. "rmg" : {
  319. }
  320. }
  321. }
  322. },
  323. "shipyard" : {
  324. "index" :87,
  325. "handler" : "shipyard",
  326. "base" : {
  327. "sounds" : {
  328. "ambient" : ["LOOPLUMB"],
  329. "visit" : ["STORE"]
  330. }
  331. },
  332. "types" : {
  333. "object" : {
  334. "index" : 0,
  335. "aiValue" : 1000,
  336. "rmg" : {
  337. },
  338. "boat" : "boatCastle"
  339. }
  340. }
  341. },
  342. "sign" : {
  343. "index" :91,
  344. "handler" : "sign",
  345. "base" : {
  346. "sounds" : {
  347. "visit" : ["STORE"]
  348. }
  349. },
  350. "types" : {
  351. "object" : {
  352. "index" : 0,
  353. "aiValue" : 0,
  354. "rmg" : {
  355. }
  356. }
  357. }
  358. },
  359. "sirens" : {
  360. "index" :92,
  361. "handler" : "siren",
  362. "base" : {
  363. "sounds" : {
  364. "ambient" : ["LOOPSIRE"],
  365. "visit" : ["DANGER"]
  366. }
  367. },
  368. "types" : {
  369. "object" : {
  370. "index" : 0,
  371. "aiValue" : 100,
  372. "rmg" : {
  373. "zoneLimit" : 1,
  374. "mapLimit" : 32,
  375. "value" : 100,
  376. "rarity" : 20
  377. }
  378. }
  379. }
  380. },
  381. "denOfThieves" : {
  382. "index" :97,
  383. "handler" : "denOfThieves",
  384. "base" : {
  385. "sounds" : {
  386. "ambient" : ["LOOPDEN"],
  387. "visit" : ["MYSTERY"]
  388. }
  389. },
  390. "types" : {
  391. "object" : {
  392. "index" : 0,
  393. "aiValue" : 100,
  394. "templates" :
  395. {
  396. "green" : { "animation" : "avxdent.def", "visitableFrom" : [ "---", "+++", "+++" ], "mask" : [ "VV", "BA"], "allowedTerrains":["grass", "swamp", "dirt"] },
  397. "brown" : { "animation" : "avxdend0.def", "visitableFrom" : [ "---", "+++", "+++" ], "mask" : [ "VV", "BA"], "allowedTerrains":["sand", "lava", "rough", "snow", "subterra"] }
  398. },
  399. "rmg" : {
  400. "value" : 100,
  401. "rarity" : 100,
  402. "zoneLimit" : 1
  403. }
  404. }
  405. }
  406. },
  407. "university" : {
  408. "index" :104,
  409. "handler" : "market",
  410. "base" : {
  411. "sounds" : {
  412. "visit" : ["GAZEBO"]
  413. }
  414. },
  415. "types" : {
  416. "object" : {
  417. "index" : 0,
  418. "aiValue" : 2500,
  419. "rmg" : {
  420. "value" : 2500,
  421. "rarity" : 20
  422. },
  423. "modes" : ["resource-skill"],
  424. "title" : "core.genrltxt.602",
  425. "speech" : "core.genrltxt.603",
  426. "offer":
  427. [
  428. { "noneOf" : ["necromancy"] },
  429. { "noneOf" : ["necromancy"] },
  430. { "noneOf" : ["necromancy"] },
  431. { "noneOf" : ["necromancy"] }
  432. ]
  433. }
  434. }
  435. },
  436. "questGuard" : {
  437. "index" :215,
  438. "handler" : "questGuard",
  439. "base" : {
  440. "sounds" : {
  441. "visit" : ["CAVEHEAD"],
  442. "removal" : [ "PICKUP01", "PICKUP02", "PICKUP03", "PICKUP04", "PICKUP05", "PICKUP06", "PICKUP07" ]
  443. }
  444. },
  445. "types" : {
  446. "object" : {
  447. "index" : 0,
  448. "aiValue" : 10000,
  449. "removable": true,
  450. "rmg" : {
  451. }
  452. }
  453. }
  454. },
  455. /// Random objects
  456. "randomTown" : { "index" :77, "handler": "randomTown", "types" : { "object" : { "index" : 0} } },
  457. "randomHero" : {
  458. "index" :70,
  459. "handler": "randomHero",
  460. "types" : {
  461. "object" : {
  462. "index" : 0,
  463. "templates" : {
  464. "normal" : {
  465. "animation" : "AHRANDOM",
  466. "editorAnimation" : "AHRANDOM",
  467. "visitableFrom" : [
  468. "+++",
  469. "+-+",
  470. "+++"
  471. ],
  472. "mask" : [
  473. "VVV",
  474. "VAV"
  475. ]
  476. }
  477. }
  478. }
  479. }
  480. },
  481. "randomDwelling" : { "index" :216, "handler": "randomDwelling", "types" : { "object" : { "index" : 0} } },
  482. "randomArtifact" : {
  483. "index" :65,
  484. "handler": "randomArtifact",
  485. "types" : {
  486. "object" : {
  487. "index" : 0,
  488. "templates" : {
  489. "normal" : { "animation" : "AVArand", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  490. }
  491. }
  492. }
  493. },
  494. "randomArtifactTreasure" : {
  495. "index" :66,
  496. "handler": "randomArtifact",
  497. "types" : {
  498. "object" : {
  499. "index" : 0,
  500. "removable": true,
  501. "rmg" : {
  502. "value" : 2000,
  503. "rarity" : 150
  504. },
  505. "templates" : {
  506. "normal" : { "animation" : "AVArnd1", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  507. }
  508. }
  509. }
  510. },
  511. "randomArtifactMinor" : {
  512. "index" :67,
  513. "handler": "randomArtifact",
  514. "types" : {
  515. "object" : {
  516. "index" : 0,
  517. "removable": true,
  518. "rmg" : {
  519. "value" : 5000,
  520. "rarity" : 150
  521. },
  522. "templates" : {
  523. "normal" : { "animation" : "AVArnd2", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  524. }
  525. }
  526. }
  527. },
  528. "randomArtifactMajor" : {
  529. "index" :68,
  530. "handler": "randomArtifact",
  531. "types" : {
  532. "object" : {
  533. "index" : 0,
  534. "removable": true,
  535. "rmg" : {
  536. "value" : 10000,
  537. "rarity" : 150
  538. },
  539. "templates" : {
  540. "normal" : { "animation" : "AVArnd3", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  541. }
  542. }
  543. }
  544. },
  545. "randomArtifactRelic" : {
  546. "index" :69,
  547. "handler": "randomArtifact",
  548. "types" : {
  549. "object" : {
  550. "index" : 0,
  551. "removable": true,
  552. "rmg" : {
  553. "value" : 20000,
  554. "rarity" : 150
  555. },
  556. "templates" : {
  557. "normal" : { "animation" : "AVArnd4", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  558. }
  559. }
  560. }
  561. },
  562. "randomMonster" : {
  563. "index" :71,
  564. "handler": "randomMonster",
  565. "types" : {
  566. "object" : {
  567. "index" : 0,
  568. "templates" : {
  569. "normal" : { "animation" : "AVWmrnd0", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  570. }
  571. }
  572. }
  573. },
  574. "randomMonsterLevel1" : {
  575. "index" :72,
  576. "handler": "randomMonster",
  577. "types" : {
  578. "object" : {
  579. "index" : 0,
  580. "removable": true,
  581. "templates" : {
  582. "normal" : { "animation" : "AVWmon1", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  583. }
  584. }
  585. }
  586. },
  587. "randomMonsterLevel2" : {
  588. "index" :73,
  589. "handler": "randomMonster",
  590. "types" : {
  591. "object" : {
  592. "index" : 0,
  593. "removable": true,
  594. "templates" : {
  595. "normal" : { "animation" : "AVWmon2", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  596. }
  597. }
  598. }
  599. },
  600. "randomMonsterLevel3" : {
  601. "index" :74,
  602. "handler": "randomMonster",
  603. "types" : {
  604. "object" : {
  605. "index" : 0,
  606. "removable": true,
  607. "templates" : {
  608. "normal" : { "animation" : "AVWmon3", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  609. }
  610. }
  611. }
  612. },
  613. "randomMonsterLevel4" : {
  614. "index" :75,
  615. "handler": "randomMonster",
  616. "types" : {
  617. "object" : {
  618. "index" : 0,
  619. "removable": true,
  620. "templates" : {
  621. "normal" : { "animation" : "AVWmon4", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  622. }
  623. }
  624. }
  625. },
  626. "randomMonsterLevel5" : {
  627. "index" :162,
  628. "handler": "randomMonster",
  629. "types" : {
  630. "object" : {
  631. "index" : 0,
  632. "templates" : {
  633. "normal" : { "animation" : "AVWmon5", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  634. }
  635. }
  636. }
  637. },
  638. "randomMonsterLevel6" : {
  639. "index" :163,
  640. "handler": "randomMonster",
  641. "types" : {
  642. "object" : {
  643. "index" : 0,
  644. "removable": true,
  645. "templates" : {
  646. "normal" : { "animation" : "AVWmon6", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  647. }
  648. }
  649. }
  650. },
  651. "randomMonsterLevel7" : {
  652. "index" :164,
  653. "handler": "randomMonster",
  654. "types" : {
  655. "object" : {
  656. "index" : 0,
  657. "removable": true,
  658. "templates" : {
  659. "normal" : { "animation" : "AVWmon7", "visitableFrom" : [ "+++", "+-+", "+++" ], "mask" : [ "VV", "VA"] }
  660. }
  661. }
  662. }
  663. },
  664. /// Classes without dedicated object
  665. "hillFort" : {
  666. "index" :35,
  667. "handler": "hillFort",
  668. "base" : {
  669. "sounds" : {
  670. "ambient" : ["LOOPSWAR"],
  671. "visit" : ["MILITARY"]
  672. }
  673. },
  674. "types" : {
  675. "object" : {
  676. "index" : 0,
  677. "aiValue" : 7000,
  678. "rmg" : {
  679. "zoneLimit" : 1,
  680. "value" : 7000,
  681. "rarity" : 20
  682. },
  683. "upgradeCostFactor" : [
  684. 0, // level 1
  685. 25,
  686. 50,
  687. 75,
  688. 100 // level 5+
  689. ]
  690. }
  691. }
  692. },
  693. "grail" : {
  694. "index" :36,
  695. "handler": "generic",
  696. "types" : {
  697. "object" : {
  698. "index" : 0,
  699. "aiValue" : 0,
  700. "removable": true,
  701. "rmg" : {
  702. }
  703. }
  704. }
  705. },
  706. "marketOfTime" : { // Unused/not implemented H3 object present on some RoE maps
  707. "index" :50,
  708. "handler": "generic",
  709. "types" : {
  710. "object" : {
  711. "index" : 0,
  712. "aiValue" : 0,
  713. "rmg" : {
  714. },
  715. "templates" : {
  716. "normal" : {
  717. "animation" : "AVXMKTT0",
  718. "editorAnimation" : "AVXMKTT0",
  719. "visitableFrom" : [
  720. "---",
  721. "--+",
  722. "+++"
  723. ],
  724. "mask" : [
  725. "VV",
  726. "BV"
  727. ]
  728. }
  729. }
  730. }
  731. }
  732. },
  733. "tavern" : {
  734. "index" :95,
  735. "handler": "generic",
  736. "base" : {
  737. "blockVisit": true,
  738. "sounds" : {
  739. "ambient" : ["LOOPTAV"],
  740. "visit" : ["STORE"]
  741. }
  742. },
  743. "types" : {
  744. "object" : {
  745. "index" : 0,
  746. "aiValue" : 100,
  747. "rmg" : {
  748. "zoneLimit" : 1,
  749. "value" : 100,
  750. "rarity" : 20
  751. }
  752. }
  753. }
  754. },
  755. "sanctuary" : {
  756. "index" :80,
  757. "handler": "generic",
  758. "base" : {
  759. "sounds" : {
  760. "ambient" : ["LOOPSANC"],
  761. "visit" : ["GETPROTECTION"]
  762. }
  763. },
  764. "types" : {
  765. "object" : {
  766. "index" : 0,
  767. "aiValue" : 100,
  768. "rmg" : {
  769. "zoneLimit" : 1,
  770. "value" : 100,
  771. "rarity" : 50
  772. }
  773. }
  774. }
  775. },
  776. /// Passive objects, terrain overlays
  777. "cursedGround" : {
  778. "index" : 21,
  779. "handler": "terrain",
  780. "base" : {
  781. "sounds" : {
  782. "ambient" : ["LOOPCURS"]
  783. }
  784. },
  785. "types" : {
  786. "object" : {
  787. "index" : 0,
  788. "battleground": "cursed_ground"
  789. }
  790. }
  791. },
  792. "magicPlains" : {
  793. "index" : 46,
  794. "handler" : "terrain",
  795. "base" : {
  796. "sounds" : {
  797. "ambient" : ["LOOPMAGI"]
  798. }
  799. },
  800. "types" : {
  801. "object" : {
  802. "index" : 0,
  803. "battleground": "magic_plains"
  804. }
  805. }
  806. },
  807. "cloverField" : {
  808. "index" :222,
  809. "handler": "terrain",
  810. "types" : { "object" : { "index" : 0, "battleground": "clover_field" } }
  811. },
  812. "cursedGroundDUPLICATE" : {
  813. "index" : 223,
  814. "handler" : "terrain",
  815. "types" : {
  816. "object" : {
  817. "index" : 0,
  818. "battleground": "cursed_ground"
  819. }
  820. },
  821. "base" : {
  822. "sounds" : {
  823. "ambient" : ["LOOPCURS"]
  824. }
  825. }
  826. },
  827. "evilFog" : {
  828. "index" :224,
  829. "handler": "terrain",
  830. "types" : { "object" : { "index" : 0, "battleground": "evil_fog" } }
  831. },
  832. "favorableWinds" : {
  833. "index" :225,
  834. "handler": "terrain",
  835. "types" : { "object" : { "index" : 0, "battleground": "ship" } }
  836. },
  837. "fieryFields": {
  838. "index" :226,
  839. "handler": "terrain",
  840. "types" : { "object" : { "index" : 0, "battleground": "fiery_fields" } }
  841. },
  842. "holyGround" : {
  843. "index" :227,
  844. "handler": "terrain",
  845. "types" : { "object" : { "index" : 0, "battleground": "holy_ground" } }
  846. },
  847. "lucidPools" : {
  848. "index" :228,
  849. "handler": "terrain",
  850. "types" : { "object" : { "index" : 0, "battleground": "lucid_pools" } }
  851. },
  852. "magicClouds" : {
  853. "index" :229,
  854. "handler": "terrain",
  855. "types" : { "object" : { "index" : 0, "battleground": "magic_clouds" } }
  856. },
  857. "magicPlainsDUPLICATE" : {
  858. "index" : 230,
  859. "handler": "terrain",
  860. "base" : {
  861. "sounds" : {
  862. "ambient" : ["LOOPMAGI"]
  863. }
  864. },
  865. "types" : {
  866. "object" : {
  867. "index" : 0,
  868. "battleground": "magic_plains"
  869. }
  870. }
  871. },
  872. "rocklands" : {
  873. "index" :231,
  874. "handler": "terrain",
  875. "types" : { "object" : { "index" : 0, "battleground": "rocklands" } }
  876. },
  877. /// Decorations
  878. "cactus" : { "index" :116, "handler": "static", "types" : { "object" : { "index" : 0} } },
  879. "canyon" : { "index" :117, "handler": "static", "types" : { "object" : { "index" : 0} } },
  880. "crater" : { "index" :118, "handler": "static", "types" : { "object" : { "index" : 0} } },
  881. "deadVegetation" : { "index" :119, "handler": "static", "types" : { "object" : { "index" : 0} } },
  882. "flowers" : { "index" :120, "handler": "static", "types" : { "object" : { "index" : 0} } },
  883. "frozenLake" : { "index" :121, "handler": "static", "types" : { "object" : { "index" : 0} } },
  884. "hole" : { "index" :124, "handler": "static", "types" : { "object" : { "index" : 0} } },
  885. "kelp" : { "index" :125, "handler": "static", "types" : { "object" : { "index" : 0} } },
  886. "lake" : { "index" :126, "handler": "static", "types" : { "object" : { "index" : 0} } },
  887. "lavaFlow" : { "index" :127, "handler": "static", "types" : { "object" : { "index" : 0} } },
  888. "lavaLake" : { "index" :128, "handler": "static", "types" : { "object" : { "index" : 0} } },
  889. "mushrooms" : { "index" :129, "handler": "static", "types" : { "object" : { "index" : 0} } },
  890. "log" : { "index" :130, "handler": "static", "types" : { "object" : { "index" : 0} } },
  891. "mandrake" : { "index" :131, "handler": "static", "types" : { "object" : { "index" : 0} } },
  892. "moss" : { "index" :132, "handler": "static", "types" : { "object" : { "index" : 0} } },
  893. "mound" : { "index" :133, "handler": "static", "types" : { "object" : { "index" : 0} } },
  894. "mountain" : { "index" :134, "handler": "static", "types" : { "object" : { "index" : 0} } },
  895. "oakTrees" : { "index" :135, "handler": "static", "types" : { "object" : { "index" : 0} } },
  896. "outcropping" : { "index" :136, "handler": "static", "types" : { "object" : { "index" : 0} } },
  897. "pineTrees" : { "index" :137, "handler": "static", "types" : { "object" : { "index" : 0} } },
  898. "riverDelta" : { "index" :143, "handler": "static", "types" : { "object" : { "index" : 0} } },
  899. "rock" : { "index" :147, "handler": "static", "types" : { "object" : { "index" : 0} } },
  900. "sandDune" : { "index" :148, "handler": "static", "types" : { "object" : { "index" : 0} } },
  901. "sandPit" : { "index" :149, "handler": "static", "types" : { "object" : { "index" : 0} } },
  902. "shrub" : { "index" :150, "handler": "static", "types" : { "object" : { "index" : 0} } },
  903. "skull" : { "index" :151, "handler": "static", "types" : { "object" : { "index" : 0} } },
  904. "stump" : { "index" :153, "handler": "static", "types" : { "object" : { "index" : 0} } },
  905. "trees" : { "index" :155, "handler": "static", "types" : { "object" : { "index" : 0} } },
  906. "volcano" : {
  907. "index" : 158,
  908. "handler": "static",
  909. "base" : {
  910. "sounds" : {
  911. "ambient" : ["LOOPVOLC"]
  912. }
  913. },
  914. "types" : {
  915. "object" : {
  916. "index" : 0
  917. }
  918. }
  919. },
  920. "reef" : { "index" :161, "handler": "static", "types" : { "object" : { "index" : 0} } },
  921. "lakeDUPLICATE" : { "index" :177, "handler": "static", "types" : { "object" : { "index" : 0} } },
  922. "treesDUPLICATE" : { "index" :199, "handler": "static", "types" : { "object" : { "index" : 0} } },
  923. "desertHills" : { "index" :206, "handler": "static", "types" : { "object" : { "index" : 0} } },
  924. "dirtHills" : { "index" :207, "handler": "static", "types" : { "object" : { "index" : 0} } },
  925. "grassHills" : { "index" :208, "handler": "static", "types" : { "object" : { "index" : 0} } },
  926. "roughHills" : { "index" :209, "handler": "static", "types" : { "object" : { "index" : 0} } },
  927. "subterraneanRocks" : { "index" :210, "handler": "static", "types" : { "object" : { "index" : 0} } },
  928. "swampFoliage" : { "index" :211, "handler": "static", "types" : { "object" : { "index" : 0} } },
  929. /// special object to handle invalid / unknown objects on some user-made maps
  930. "nothing" : {
  931. "index" : 0,
  932. "handler": "generic",
  933. "types" : {
  934. "nothing" : {
  935. "index" : 0
  936. }
  937. }
  938. }
  939. }