buildings.xml 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036
  1. <?xml version='1.0' encoding='utf-8'?>
  2. <!--
  3. Copyright (c) 2003-onwards Shaven Puppy Ltd
  4. All rights reserved.
  5. Redistribution and use in source and binary forms, with or without
  6. modification, are permitted provided that the following conditions are
  7. met:
  8. * Redistributions of source code must retain the above copyright
  9. notice, this list of conditions and the following disclaimer.
  10. * Redistributions in binary form must reproduce the above copyright
  11. notice, this list of conditions and the following disclaimer in the
  12. documentation and/or other materials provided with the distribution.
  13. * Neither the name of 'Shaven Puppy' nor the names of its contributors
  14. may be used to endorse or promote products derived from this software
  15. without specific prior written permission.
  16. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  17. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  18. TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  19. PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  20. CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  21. EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  22. PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  23. PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  24. LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  25. NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  26. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. -->
  28. <!-- Buildings! -->
  29. <resources>
  30. <!-- Load all the tags -->
  31. <include resource="tags.xml" />
  32. <!-- Building keys -->
  33. <include resource="buildings-properties.xml" />
  34. <array name="hitpoints.2x2.3.array" autocreated="true">
  35. <item><layers scale="0.5" autocreated="true">
  36. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.2x2.3.01"/>
  37. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.2x2.3.back.01"/>
  38. </layers></item>
  39. <item><layers scale="0.5" autocreated="true">
  40. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.2x2.3.02"/>
  41. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.2x2.3.back.01"/>
  42. </layers></item>
  43. <item><layers scale="0.5" autocreated="true">
  44. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.2x2.3.03"/>
  45. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.2x2.3.back.01"/>
  46. </layers></item>
  47. </array>
  48. <array name="hitpoints.3x3.3.array" autocreated="true">
  49. <item><layers scale="0.5" autocreated="true">
  50. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.3.01"/>
  51. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.3.back.01"/>
  52. </layers></item>
  53. <item><layers scale="0.5" autocreated="true">
  54. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.3.02"/>
  55. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.3.back.01"/>
  56. </layers></item>
  57. <item><layers scale="0.5" autocreated="true">
  58. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.3.03"/>
  59. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.3.back.01"/>
  60. </layers></item>
  61. </array>
  62. <array name="hitpoints.3x3.5.array" autocreated="true">
  63. <item><layers scale="0.5" autocreated="true">
  64. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.5.01"/>
  65. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.5.back.01"/>
  66. </layers></item>
  67. <item><layers scale="0.5" autocreated="true">
  68. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.5.02"/>
  69. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.5.back.01"/>
  70. </layers></item>
  71. <item><layers scale="0.5" autocreated="true">
  72. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.5.03"/>
  73. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.5.back.01"/>
  74. </layers></item>
  75. <item><layers scale="0.5" autocreated="true">
  76. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.5.04"/>
  77. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.5.back.01"/>
  78. </layers></item>
  79. <item><layers scale="0.5" autocreated="true">
  80. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.3x3.5.05"/>
  81. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.3x3.5.back.01"/>
  82. </layers></item>
  83. </array>
  84. <array name="hitpoints.4x4.3.array" autocreated="true">
  85. <item><layers scale="0.5" autocreated="true">
  86. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.3.01"/>
  87. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.3.back.01"/>
  88. </layers></item>
  89. <item><layers scale="0.5" autocreated="true">
  90. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.3.02"/>
  91. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.3.back.01"/>
  92. </layers></item>
  93. <item><layers scale="0.5" autocreated="true">
  94. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.3.03"/>
  95. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.3.back.01"/>
  96. </layers></item>
  97. </array>
  98. <array name="hitpoints.4x4.5.array" autocreated="true">
  99. <item><layers scale="0.5" autocreated="true">
  100. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.5.01"/>
  101. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.5.back.01"/>
  102. </layers></item>
  103. <item><layers scale="0.5" autocreated="true">
  104. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.5.02"/>
  105. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.5.back.01"/>
  106. </layers></item>
  107. <item><layers scale="0.5" autocreated="true">
  108. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.5.03"/>
  109. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.5.back.01"/>
  110. </layers></item>
  111. <item><layers scale="0.5" autocreated="true">
  112. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.5.04"/>
  113. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.5.back.01"/>
  114. </layers></item>
  115. <item><layers scale="0.5" autocreated="true">
  116. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.4x4.5.05"/>
  117. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.4x4.5.back.01"/>
  118. </layers></item>
  119. </array>
  120. <array name="hitpoints.5x5.10.array" autocreated="true">
  121. <item><layers scale="0.5" autocreated="true">
  122. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.01"/>
  123. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  124. </layers></item>
  125. <item><layers scale="0.5" autocreated="true">
  126. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.02"/>
  127. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  128. </layers></item>
  129. <item><layers scale="0.5" autocreated="true">
  130. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.03"/>
  131. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  132. </layers></item>
  133. <item><layers scale="0.5" autocreated="true">
  134. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.04"/>
  135. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  136. </layers></item>
  137. <item><layers scale="0.5" autocreated="true">
  138. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.05"/>
  139. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  140. </layers></item>
  141. <item><layers scale="0.5" autocreated="true">
  142. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.06"/>
  143. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  144. </layers></item>
  145. <item><layers scale="0.5" autocreated="true">
  146. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.07"/>
  147. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  148. </layers></item>
  149. <item><layers scale="0.5" autocreated="true">
  150. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.08"/>
  151. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  152. </layers></item>
  153. <item><layers scale="0.5" autocreated="true">
  154. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.09"/>
  155. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  156. </layers></item>
  157. <item><layers scale="0.5" autocreated="true">
  158. <sprite layer="=$hitpointslayer" image="spriteimage.hitpoints.5x5.10.10"/>
  159. <sprite layer="=$hitpointslayer-1" image="spriteimage.hitpoints.5x5.10.back.01"/>
  160. </layers></item>
  161. </array>
  162. <instance
  163. class="worm.buildings.BaseBuildingFeature"
  164. name="base.building.spec"
  165. hitpoints="40"
  166. bounds="0,0,60,36"
  167. title="BASE"
  168. hitPointsGraphics="hitpoints.5x5.10.array"
  169. repairEmitter="repair.5x5.emitter"
  170. cost="500"
  171. />
  172. <!-- REFINING ============================================================================================================================ -->
  173. <instance
  174. class="worm.buildings.FactoryBuildingFeature"
  175. name="factory.building.spec"
  176. hud="build_factory"
  177. tooltipGraphic="=$key.game.factory.icon"
  178. bounds="0,0,40,24"
  179. title="=$factory.building.title"
  180. hitpoints="20"
  181. bonusdescription="=$factory.building.bonus"
  182. cost="250"
  183. hitPointsGraphics="hitpoints.4x4.5.array"
  184. forcefieldGraphics="forcefield.4x4.5.array"
  185. repairEmitter="repair.4x4.emitter"
  186. buildEmitter="build.4x4.emitter"
  187. shopIcon="building.factory"
  188. baseProductionRate="180"
  189. minProductionRate="20"
  190. productionRatePerCollector="20"
  191. productionRatePerWarehouse="10"
  192. amountToExtract="10"
  193. amountToExtractPerWarehouse="2"
  194. maxCollectors="4"
  195. maxWarehouses="4"
  196. description="factory.building.description"
  197. />
  198. <instance
  199. class="worm.buildings.WarehouseBuildingFeature"
  200. name="warehouse.building.spec"
  201. hud="build_warehouse"
  202. tooltipGraphic="=$key.game.warehouse.icon"
  203. hitpoints="12"
  204. bounds="0,0,20,16"
  205. title="=$warehouse.building.title"
  206. bonusdescription="=$warehouse.building.bonus"
  207. cost="750"
  208. repairEmitter="repair.2x2.emitter"
  209. hitPointsGraphics="hitpoints.2x2.3.array"
  210. forcefieldGraphics="forcefield.2x2.3.array"
  211. buildEmitter="build.2x2.emitter"
  212. shopIcon="building.silo"
  213. description="warehouse.building.description"
  214. />
  215. <instance
  216. class="worm.buildings.CollectorBuildingFeature"
  217. name="collector.building.spec"
  218. hud="build_collector"
  219. tooltipGraphic="=$key.game.collector.icon"
  220. bounds="0,0,20,16"
  221. title="=$collector.building.title"
  222. hitpoints="12"
  223. cost="500"
  224. hitPointsGraphics="hitpoints.2x2.3.array"
  225. forcefieldGraphics="forcefield.2x2.3.array"
  226. repairEmitter="repair.2x2.emitter"
  227. buildEmitter="build.2x2.emitter"
  228. shopIcon="building.collector"
  229. description="collector.building.description"
  230. />
  231. <!-- TURRETS ============================================================================================================================ -->
  232. <instance
  233. class="worm.buildings.TurretBuildingFeature"
  234. name="turret.building.spec"
  235. maxReactors="4"
  236. maxScanners="4"
  237. />
  238. <instance
  239. class="worm.buildings.TurretBuildingFeature"
  240. inherit="turret.building.spec"
  241. name="blaster.building.spec"
  242. hud="build_blaster"
  243. tooltipGraphic="=$key.game.blaster.icon"
  244. hitpoints="12"
  245. bounds="0,0,32,20"
  246. title="=$blaster.building.title"
  247. weapon="blaster.weapon"
  248. beamOffsetX="1"
  249. beamOffsetY="7"
  250. cost="250"
  251. repairEmitter="repair.3x3.emitter"
  252. hitPointsGraphics="hitpoints.3x3.3.array"
  253. forcefieldGraphics="forcefield.3x3.3.array"
  254. buildEmitter="build.3x3.emitter"
  255. shopIcon="building.blaster"
  256. baseRange="=$baserange"
  257. rangeIncrement="=$rangeincrement"
  258. description="blaster.building.description"
  259. >
  260. <barrel>10,15</barrel>
  261. </instance>
  262. <instance
  263. class="worm.buildings.TurretBuildingFeature"
  264. inherit="turret.building.spec"
  265. name="heavyblaster.building.spec"
  266. hud="build_heavyblaster"
  267. tooltipGraphic="=$key.game.heavyblaster.icon"
  268. hitpoints="12"
  269. bounds="0,0,32,20"
  270. title="=$heavyblaster.building.title"
  271. weapon="heavyblaster.weapon"
  272. beamOffsetX="1"
  273. beamOffsetY="8"
  274. cost="500"
  275. repairEmitter="repair.3x3.emitter"
  276. hitPointsGraphics="hitpoints.3x3.3.array"
  277. forcefieldGraphics="forcefield.3x3.3.array"
  278. buildEmitter="build.3x3.emitter"
  279. shopIcon="building.heavyblaster"
  280. baseRange="=$baserange"
  281. rangeIncrement="=$rangeincrement"
  282. description="heavyblaster.building.description"
  283. >
  284. <barrel>8,19</barrel>
  285. <barrel>8,15</barrel>
  286. </instance>
  287. <instance
  288. class="worm.buildings.TurretBuildingFeature"
  289. inherit="turret.building.spec"
  290. name="multiblaster.building.spec"
  291. hud="build_multiblaster"
  292. tooltipGraphic="=$key.game.multiblaster.icon"
  293. hitpoints="12"
  294. bounds="0,0,32,20"
  295. title="=$multiblaster.building.title"
  296. weapon="multiblaster.weapon"
  297. beamOffsetX="-3"
  298. beamOffsetY="10"
  299. cost="750"
  300. repairEmitter="repair.3x3.emitter"
  301. hitPointsGraphics="hitpoints.3x3.3.array"
  302. forcefieldGraphics="forcefield.3x3.3.array"
  303. buildEmitter="build.3x3.emitter"
  304. shopIcon="building.multiblaster"
  305. baseRange="=$baserange"
  306. rangeIncrement="=$rangeincrement"
  307. description="multiblaster.building.description"
  308. >
  309. <barrel>7,19</barrel>
  310. <barrel>20,19</barrel>
  311. <barrel>7,17</barrel>
  312. <barrel>20,17</barrel>
  313. <barrel>7,15</barrel>
  314. <barrel>20,15</barrel>
  315. </instance>
  316. <instance
  317. class="worm.buildings.TurretBuildingFeature"
  318. inherit="turret.building.spec"
  319. name="blastcannon.building.spec"
  320. hud="build_blastcannon"
  321. tooltipGraphic="=$key.game.blastcannon.icon"
  322. hitpoints="12"
  323. bounds="0,0,32,20"
  324. title="=$blastcannon.building.title"
  325. weapon="blastcannon.weapon"
  326. beamOffsetX="-3"
  327. beamOffsetY="11"
  328. cost="750"
  329. repairEmitter="repair.3x3.emitter"
  330. hitPointsGraphics="hitpoints.3x3.3.array"
  331. forcefieldGraphics="forcefield.3x3.3.array"
  332. buildEmitter="build.3x3.emitter"
  333. shopIcon="building.blastcannon"
  334. baseRange="=$baserange"
  335. rangeIncrement="=$rangeincrement"
  336. description="blastcannon.building.description"
  337. >
  338. <barrel>8,21</barrel>
  339. <barrel>19,21</barrel>
  340. <barrel>8,16</barrel>
  341. <barrel>19,16</barrel>
  342. </instance>
  343. <instance
  344. class="worm.buildings.TurretBuildingFeature"
  345. inherit="turret.building.spec"
  346. name="shotgun.building.spec"
  347. hud="build_spreadercannon"
  348. tooltipGraphic="=$key.game.spreadercannon.icon"
  349. hitpoints="12"
  350. bounds="0,0,32,20"
  351. title="=$shotgun.building.title"
  352. weapon="shotgun.weapon"
  353. ignoreDeflection="true"
  354. beamOffsetX="-3"
  355. beamOffsetY="13"
  356. cost="500"
  357. repairEmitter="repair.3x3.emitter"
  358. hitPointsGraphics="hitpoints.3x3.3.array"
  359. forcefieldGraphics="forcefield.3x3.3.array"
  360. buildEmitter="build.3x3.emitter"
  361. shopIcon="building.spreader"
  362. baseRange="=$baserange"
  363. rangeIncrement="=$rangeincrement"
  364. description="shotgun.building.description"
  365. >
  366. <barrel>7,22</barrel>
  367. <barrel>20,22</barrel>
  368. <barrel>6,19</barrel>
  369. <barrel>21,19</barrel>
  370. <barrel>7,16</barrel>
  371. <barrel>20,16</barrel>
  372. </instance>
  373. <instance
  374. class="worm.buildings.TurretBuildingFeature"
  375. inherit="turret.building.spec"
  376. name="assault.building.spec"
  377. hud="build_assaultcannon"
  378. tooltipGraphic="=$key.game.assaultcannon.icon"
  379. hitpoints="12"
  380. bounds="0,0,40,24"
  381. title="=$assault.building.title"
  382. ignoreDeflection="true"
  383. weapon="assault.weapon"
  384. beamOffsetX="-2"
  385. beamOffsetY="15"
  386. cost="1000"
  387. repairEmitter="repair.4x4.emitter"
  388. hitPointsGraphics="hitpoints.4x4.3.array"
  389. forcefieldGraphics="forcefield.4x4.3.array"
  390. buildEmitter="build.4x4.emitter"
  391. shopIcon="building.assault"
  392. heavyWeapon="true"
  393. baseRange="=$baserange"
  394. rangeIncrement="=$rangeincrement"
  395. description="assault.building.description"
  396. >
  397. <barrel>13,26</barrel>
  398. <barrel>22,26</barrel>
  399. <barrel>9,24</barrel>
  400. <barrel>26,24</barrel>
  401. <barrel>8,21</barrel>
  402. <barrel>27,21</barrel>
  403. <barrel>9,18</barrel>
  404. <barrel>26,18</barrel>
  405. <barrel>13,16</barrel>
  406. <barrel>22,16</barrel>
  407. </instance>
  408. <instance
  409. class="worm.buildings.TurretBuildingFeature"
  410. inherit="turret.building.spec"
  411. name="rocket.building.spec"
  412. hud="build_rocket"
  413. tooltipGraphic="=$key.game.rocket.icon"
  414. hitpoints="12"
  415. bounds="0,0,40,24"
  416. title="=$rocket.building.title"
  417. weapon="rocket.weapon"
  418. beamOffsetX="6"
  419. beamOffsetY="15"
  420. cost="1500"
  421. minimumRange="96"
  422. baseRange="120"
  423. rangeincrement="40"
  424. repairEmitter="repair.4x4.emitter"
  425. hitPointsGraphics="hitpoints.4x4.3.array"
  426. forcefieldGraphics="forcefield.4x4.3.array"
  427. buildEmitter="build.4x4.emitter"
  428. shopIcon="building.rockets"
  429. heavyWeapon="true"
  430. dontTargetFlyingTargets="true"
  431. numAvailable="1"
  432. maxAvailable="5"
  433. agitation="0.0625"
  434. description="rocket.building.description"
  435. >
  436. <barrel>12,26</barrel>
  437. <barrel>17,26</barrel>
  438. <barrel>23,26</barrel>
  439. <barrel>15,22</barrel>
  440. <barrel>20,22</barrel>
  441. <barrel>12,18</barrel>
  442. <barrel>17,18</barrel>
  443. <barrel>23,18</barrel>
  444. </instance>
  445. <instance
  446. class="worm.buildings.TurretBuildingFeature"
  447. inherit="turret.building.spec"
  448. name="laser.building.spec"
  449. hud="build_laser"
  450. tooltipGraphic="=$key.game.laser.icon"
  451. hitpoints="12"
  452. bounds="0,0,40,24"
  453. title="=$laser.building.title"
  454. weapon="laser.weapon"
  455. beamOffsetX="-3"
  456. beamOffsetY="12"
  457. cost="1500"
  458. baserange="80"
  459. rangeincrement="32"
  460. repairEmitter="repair.4x4.emitter"
  461. hitPointsGraphics="hitpoints.4x4.3.array"
  462. forcefieldGraphics="forcefield.4x4.3.array"
  463. buildEmitter="build.4x4.emitter"
  464. shopIcon="building.laser"
  465. heavyWeapon="true"
  466. targetIntoMountains="true"
  467. numAvailable="1"
  468. maxAvailable="5"
  469. agitation="0.0625"
  470. description="laser.building.description"
  471. >
  472. <barrel>17,20</barrel>
  473. </instance>
  474. <instance
  475. class="worm.buildings.TurretBuildingFeature"
  476. inherit="turret.building.spec"
  477. name="disruptor.building.spec"
  478. hud="build_disruptor"
  479. tooltipGraphic="=$key.game.disruptor.icon"
  480. hitpoints="12"
  481. bounds="0,0,40,24"
  482. title="=$disruptor.building.title"
  483. weapon="disruptor.weapon"
  484. beamOffsetX="7"
  485. beamOffsetY="8"
  486. cost="1500"
  487. baserange="64"
  488. rangeincrement="8"
  489. repairEmitter="repair.4x4.emitter"
  490. hitPointsGraphics="hitpoints.4x4.3.array"
  491. forcefieldGraphics="forcefield.4x4.3.array"
  492. buildEmitter="build.4x4.emitter"
  493. shopIcon="building.disruptor"
  494. heavyWeapon="true"
  495. numAvailable="1"
  496. maxAvailable="5"
  497. agitation="0.0625"
  498. description="disruptor.building.description"
  499. >
  500. <barrel>17,20</barrel>
  501. </instance>
  502. <!-- MINES ============================================================================================================================ -->
  503. <instance
  504. class="worm.buildings.MinefieldFeature"
  505. name="mine.building.spec"
  506. hud="build_mine"
  507. tooltipGraphic="=$key.game.mine.icon"
  508. bounds="-4,-4,8,8"
  509. title="=$mine.building.title"
  510. numAvailable="20"
  511. maxAvailable="99"
  512. cost="25"
  513. explosionRadius="16.0"
  514. damage="12"
  515. uses="1"
  516. paintable="true"
  517. buildEmitter="build.1x1.emitter"
  518. shopIcon="building.mine"
  519. description="mine.building.description"
  520. />
  521. <instance
  522. class="worm.buildings.MinefieldFeature"
  523. name="clustermine.building.spec"
  524. hud="build_clustermine"
  525. tooltipGraphic="=$key.game.clustermine.icon"
  526. bounds="0,0,12,12"
  527. title="=$clustermine.building.title"
  528. numAvailable="10"
  529. maxAvailable="50"
  530. cost="75"
  531. explosionRadius="8.0"
  532. damage="6"
  533. uses="4"
  534. paintable="true"
  535. shopIcon="building.clustermine"
  536. description="clustermine.building.description"
  537. />
  538. <instance
  539. class="worm.buildings.MinefieldFeature"
  540. name="blastmine.building.spec"
  541. hud="build_blastmine"
  542. tooltipGraphic="=$key.game.blastmine.icon"
  543. bounds="0,0,12,8"
  544. title="=$blastmine.building.title"
  545. numAvailable="5"
  546. maxAvailable="25"
  547. cost="100"
  548. explosionRadius="80.0"
  549. damage="16"
  550. uses="1"
  551. paintable="true"
  552. requiresArming="true"
  553. buildEmitter="build.1x1.emitter"
  554. shopIcon="building.blastmine"
  555. description="blastmine.building.description"
  556. />
  557. <!-- ROBOTICS ============================================================================================================================ -->
  558. <instance
  559. class="worm.buildings.BarracksBuildingFeature"
  560. name="barracks.building.spec"
  561. hud="build_barracks"
  562. tooltipGraphic="=$key.game.barracks.icon"
  563. bounds="0,0,40,24"
  564. title="=$barracks.building.title"
  565. hitpoints="20"
  566. bonusdescription="=$barracks.building.bonus"
  567. cost="1000"
  568. buffedCost="1500"
  569. hitPointsGraphics="hitpoints.4x4.5.array"
  570. forcefieldGraphics="forcefield.4x4.5.array"
  571. repairEmitter="repair.4x4.emitter"
  572. buildEmitter="build.4x4.emitter"
  573. shopIcon="building.barracks"
  574. unit="unit.droid"
  575. buffedUnit="unit.droid.buffed"
  576. sergeant="unit.droid.sergeant"
  577. numAvailable="1"
  578. maxAvailable="5"
  579. agitation="0.0625"
  580. baseProductionRate="600"
  581. buffedProductionRate="900"
  582. maxReactors="4"
  583. productionRatePerReactor="75"
  584. unitsPerReactor="1"
  585. maxUnits="5"
  586. description="barracks.building.description"
  587. />
  588. <instance
  589. class="worm.buildings.BarracksBuildingFeature"
  590. name="tankfactory.building.spec"
  591. hud="build_tankfactory"
  592. tooltipGraphic="=$key.game.tankfactory.icon"
  593. bounds="0,0,40,24"
  594. title="=$tankfactory.building.title"
  595. hitpoints="20"
  596. bonusdescription="=$tankfactory.building.bonus"
  597. cost="2500"
  598. buffedCost="3500"
  599. hitPointsGraphics="hitpoints.4x4.5.array"
  600. forcefieldGraphics="forcefield.4x4.5.array"
  601. repairEmitter="repair.4x4.emitter"
  602. buildEmitter="build.4x4.emitter"
  603. shopIcon="building.tankfactory"
  604. unit="unit.tank"
  605. buffedUnit="unit.tank.buffed"
  606. sergeant="unit.tank.sergeant"
  607. numAvailable="1"
  608. maxAvailable="3"
  609. agitation="0.125"
  610. baseProductionRate="750"
  611. buffedProductionRate="1000"
  612. maxReactors="4"
  613. productionRatePerReactor="75"
  614. unitsPerReactor="1"
  615. maxUnits="4"
  616. description="tankfactory.building.description"
  617. />
  618. <instance
  619. class="worm.buildings.BarracksBuildingFeature"
  620. name="repairdrones.building.spec"
  621. hud="build_repairdrones"
  622. tooltipGraphic="=$key.game.repairdrones.icon"
  623. bounds="0,0,40,24"
  624. title="=$repairdrones.building.title"
  625. hitpoints="20"
  626. bonusdescription="=$repairdrones.building.bonus"
  627. cost="2500"
  628. hitPointsGraphics="hitpoints.4x4.5.array"
  629. forcefieldGraphics="forcefield.4x4.5.array"
  630. repairEmitter="repair.4x4.emitter"
  631. buildEmitter="build.4x4.emitter"
  632. shopIcon="building.repairdrones"
  633. unit="unit.drone"
  634. numAvailable="1"
  635. maxAvailable="1"
  636. baseProductionRate="1200"
  637. buffedProductionRate="900"
  638. maxReactors="4"
  639. productionRatePerReactor="75"
  640. unitsPerReactor="1"
  641. maxUnits="3"
  642. description="repairdrones.building.description"
  643. />
  644. <!-- MISC ============================================================================================================================ -->
  645. <instance
  646. class="worm.buildings.CapacitorBuildingFeature"
  647. name="capacitor.building.spec"
  648. hud="build_capacitor"
  649. tooltipGraphic="=$key.game.capacitor.icon"
  650. hitpoints="12"
  651. bounds="0,0,32,20"
  652. title="=$capacitor.building.title"
  653. cost="750"
  654. weapon="capacitor.weapon"
  655. bezerkWeapon="bezerk.weapon"
  656. hitPointsGraphics="hitpoints.3x3.3.array"
  657. forcefieldGraphics="forcefield.3x3.3.array"
  658. repairEmitter="repair.3x3.emitter"
  659. buildEmitter="build.3x3.emitter"
  660. shopIcon="building.capacitor"
  661. baseRange="64.0"
  662. rangePerReactor="16.0"
  663. maxReactors="4"
  664. description="capacitor.building.description"
  665. />
  666. <instance
  667. class="worm.buildings.ShieldGeneratorBuildingFeature"
  668. name="shield.building.spec"
  669. hud="build_shield"
  670. tooltipGraphic="=$key.game.shield.icon"
  671. hitpoints="12"
  672. bounds="0,0,20,16"
  673. title="=$shield.building.title"
  674. bonusdescription="=$shield.building.bonus"
  675. cost="2500"
  676. hitPointsGraphics="hitpoints.2x2.3.array"
  677. forcefieldGraphics="forcefield.2x2.3.array"
  678. repairEmitter="repair.2x2.emitter"
  679. buildEmitter="build.2x2.emitter"
  680. shopIcon="building.shields"
  681. numAvailable="1"
  682. maxAvailable="10"
  683. agitation="0.0625"
  684. description="shield.building.description"
  685. />
  686. <instance
  687. class="worm.buildings.TurretBuildingFeature"
  688. name="decoy.building.spec"
  689. hud="build_decoy"
  690. tooltipGraphic="=$key.game.decoy.icon"
  691. hitpoints="12"
  692. bounds="0,0,20,16"
  693. title="=$decoy.building.title"
  694. cost="1500"
  695. paintable="true"
  696. hitPointsGraphics="hitpoints.2x2.3.array"
  697. forcefieldGraphics="forcefield.2x2.3.array"
  698. repairEmitter="repair.2x2.emitter"
  699. buildEmitter="build.2x2.emitter"
  700. shopIcon="building.decoy"
  701. numAvailable="1"
  702. maxAvailable="10"
  703. agitation="-0.03125"
  704. description="decoy.building.description"
  705. />
  706. <instance
  707. class="worm.buildings.ScarecrowBuildingFeature"
  708. name="scarecrow.building.spec"
  709. hud="build_scarecrow"
  710. tooltipGraphic="=$key.game.scarecrow.icon"
  711. hitpoints="12"
  712. bounds="0,0,20,16"
  713. title="=$scarecrow.building.title"
  714. cost="250"
  715. radius="64.0"
  716. danger="=$#worm.entities.Gidrah.MAX_DANGER"
  717. hitPointsGraphics="hitpoints.2x2.3.array"
  718. forcefieldGraphics="forcefield.2x2.3.array"
  719. repairEmitter="repair.2x2.emitter"
  720. buildEmitter="build.2x2.emitter"
  721. shopIcon="building.scarecrow"
  722. description="scarecrow.building.description"
  723. />
  724. <instance
  725. class="worm.buildings.BarricadeFeature"
  726. name="tangleweb.building.spec"
  727. hud="build_tangleweb"
  728. tooltipGraphic="=$key.game.tangleweb.icon"
  729. hitpoints="0"
  730. bounds="0,0,12,12"
  731. title="=$tangleweb.building.title"
  732. shortTitle="=$tangleweb.building.title"
  733. numAvailable="20"
  734. maxAvailable="80"
  735. cost="50"
  736. difficulty="0"
  737. paintable="true"
  738. buildEmitter="build.1x1.emitter"
  739. shopIcon="building.tangleweb"
  740. registeredOnly="true"
  741. setting="building"
  742. slowdown="true"
  743. gidletproof="true"
  744. description="tangleweb.building.description"
  745. />
  746. <instance
  747. class="worm.buildings.CloakBuildingFeature"
  748. name="cloakingdevice.building.spec"
  749. hud="build_cloakingdevice"
  750. tooltipGraphic="=$key.game.cloakingdevice.icon"
  751. hitpoints="12"
  752. bounds="0,0,32,20"
  753. title="=$cloakingdevice.building.title"
  754. cost="750"
  755. hitPointsGraphics="hitpoints.3x3.3.array"
  756. forcefieldGraphics="forcefield.3x3.3.array"
  757. repairEmitter="repair.3x3.emitter"
  758. buildEmitter="build.3x3.emitter"
  759. shopIcon="building.cloakingdevice"
  760. numAvailable="1"
  761. maxAvailable="5"
  762. description="cloakingdevice.building.description"
  763. />
  764. <!-- ADD ONS ============================================================================================================================ -->
  765. <instance
  766. class="worm.buildings.ScannerBuildingFeature"
  767. name="scanner.building.spec"
  768. hud="build_scanner"
  769. tooltipGraphic="=$key.game.scanner.icon"
  770. hitpoints="12"
  771. bounds="0,0,20,16"
  772. title="=$scanner.building.title"
  773. bonusdescription="=$scanner.building.bonus"
  774. cost="500"
  775. repairEmitter="repair.2x2.emitter"
  776. hitPointsGraphics="hitpoints.2x2.3.array"
  777. forcefieldGraphics="forcefield.2x2.3.array"
  778. buildEmitter="build.2x2.emitter"
  779. shopIcon="building.scanner"
  780. description="scanner.building.description"
  781. />
  782. <instance
  783. class="worm.buildings.BatteryBuildingFeature"
  784. name="battery.building.spec"
  785. hud="build_battery"
  786. tooltipGraphic="=$key.game.battery.icon"
  787. hitpoints="12"
  788. bounds="0,0,20,16"
  789. title="=$battery.building.title"
  790. bonusdescription="=$battery.building.bonus"
  791. cost="250"
  792. repairEmitter="repair.2x2.emitter"
  793. hitPointsGraphics="hitpoints.2x2.3.array"
  794. forcefieldGraphics="forcefield.2x2.3.array"
  795. buildEmitter="build.2x2.emitter"
  796. shopIcon="building.battery"
  797. description="battery.building.description"
  798. />
  799. <instance
  800. class="worm.buildings.CoolingTowerBuildingFeature"
  801. name="coolingtower.building.spec"
  802. hud="build_coolingtower"
  803. tooltipGraphic="=$key.game.coolingtower.icon"
  804. hitpoints="12"
  805. bounds="0,0,20,16"
  806. title="=$coolingtower.building.title"
  807. bonusdescription="=$coolingtower.building.bonus"
  808. cost="250"
  809. repairEmitter="repair.2x2.emitter"
  810. hitPointsGraphics="hitpoints.2x2.3.array"
  811. forcefieldGraphics="forcefield.2x2.3.array"
  812. buildEmitter="build.2x2.emitter"
  813. shopIcon="building.cooling"
  814. description="coolingtower.building.description"
  815. />
  816. <instance
  817. class="worm.buildings.AutoLoaderBuildingFeature"
  818. name="autoloader.building.spec"
  819. hud="build_autoloader"
  820. tooltipGraphic="=$key.game.autoloader.icon"
  821. hitpoints="12"
  822. bounds="0,0,20,16"
  823. title="=$autoloader.building.title"
  824. bonusdescription="=$autoloader.building.bonus"
  825. cost="250"
  826. repairEmitter="repair.2x2.emitter"
  827. hitPointsGraphics="hitpoints.2x2.3.array"
  828. forcefieldGraphics="forcefield.2x2.3.array"
  829. buildEmitter="build.2x2.emitter"
  830. shopIcon="building.autoloader"
  831. description="autoloader.building.description"
  832. />
  833. <instance
  834. class="worm.buildings.ReactorBuildingFeature"
  835. name="reactor.building.spec"
  836. hud="build_reactor"
  837. tooltipGraphic="=$key.game.reactor.icon"
  838. hitpoints="12"
  839. bounds="0,0,32,20"
  840. title="=$reactor.building.title"
  841. bonusdescription="=$reactor.building.bonus"
  842. cost="250"
  843. hitPointsGraphics="hitpoints.3x3.3.array"
  844. forcefieldGraphics="forcefield.3x3.3.array"
  845. repairEmitter="repair.3x3.emitter"
  846. buildEmitter="build.3x3.emitter"
  847. shopIcon="building.reactor"
  848. description="reactor.building.description"
  849. />
  850. <!-- BARRICADES ============================================================================================================================ -->
  851. <instance
  852. class="worm.buildings.BarricadeFeature"
  853. name="concrete.building.spec"
  854. hud="build_concrete"
  855. tooltipGraphic="=$key.game.concrete.icon"
  856. hitpoints="=$barricade*2"
  857. bounds="0,0,12,8"
  858. title="=$concrete.building.title"
  859. shortTitle="=$concrete.building.shorttitle"
  860. numAvailable="40"
  861. maxAvailable="80"
  862. cost="10"
  863. difficulty="=$cost*2"
  864. paintable="true"
  865. buildEmitter="build.1x1.emitter"
  866. shopIcon="building.concrete"
  867. description="concrete.building.description"
  868. />
  869. <instance
  870. class="worm.buildings.BarricadeFeature"
  871. name="steel.building.spec"
  872. hud="build_steel"
  873. tooltipGraphic="=$key.game.steel.icon"
  874. hitpoints="=$barricade*3"
  875. bounds="0,0,12,8"
  876. title="=$steel.building.title"
  877. shortTitle="=$steel.building.shorttitle"
  878. cost="20"
  879. numAvailable="30"
  880. maxAvailable="60"
  881. difficulty="=$cost*3"
  882. paintable="true"
  883. buildEmitter="build.1x1.emitter"
  884. shopIcon="building.steel"
  885. description="steel.building.description"
  886. />
  887. <instance
  888. class="worm.buildings.BarricadeFeature"
  889. name="titanium.building.spec"
  890. hud="build_titanium"
  891. tooltipGraphic="=$key.game.titanium.icon"
  892. hitpoints="=$barricade*4"
  893. bounds="0,0,12,8"
  894. title="=$titanium.building.title"
  895. shortTitle="=$titanium.building.shorttitle"
  896. numAvailable="20"
  897. maxAvailable="40"
  898. cost="30"
  899. difficulty="=$cost*4"
  900. paintable="true"
  901. buildEmitter="build.1x1.emitter"
  902. shopIcon="building.titanium"
  903. description="titanium.building.description"
  904. />
  905. <instance
  906. class="worm.buildings.BarricadeFeature"
  907. name="nanomesh.building.spec"
  908. hud="build_nanomesh"
  909. tooltipGraphic="=$key.game.nanomesh.icon"
  910. hitpoints="=$barricade*5"
  911. bounds="0,0,12,8"
  912. title="=$nanomesh.building.title"
  913. shortTitle="=$nanomesh.building.shorttitle"
  914. numAvailable="10"
  915. maxAvailable="20"
  916. cost="40"
  917. difficulty="=$cost*5"
  918. paintable="true"
  919. buildEmitter="build.1x1.emitter"
  920. shopIcon="building.nanomesh"
  921. registeredOnly="true"
  922. setting="building"
  923. gidletProof="true"
  924. description="nanomesh.building.description"
  925. />
  926. <!-- CRYSTALS ========================================================================================================================= -->
  927. <instance
  928. class="worm.buildings.CrystalFeature"
  929. name="crystal.small.building.spec"
  930. hitpoints="=$crystal*1"
  931. bounds="0,0,16,16"
  932. value="1000"
  933. />
  934. <instance
  935. class="worm.buildings.CrystalFeature"
  936. name="crystal.medium.building.spec"
  937. hitpoints="=$crystal*2"
  938. bounds="0,0,32,16"
  939. value="2000"
  940. />
  941. <instance
  942. class="worm.buildings.CrystalFeature"
  943. name="crystal.large.building.spec"
  944. hitpoints="=$crystal*4"
  945. bounds="0,0,32,16"
  946. value="3000"
  947. />
  948. <include resource="buildings-generic.xml"/>
  949. <include resource="buildings-earth.xml"/>
  950. <include resource="buildings-moon.xml"/>
  951. <include resource="buildings-mars.xml"/>
  952. <include resource="buildings-saturn.xml"/>
  953. <include resource="buildings-titan.xml"/>
  954. </resources>