warscript 0.0.1-dev.404878c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/LICENSE +23 -0
  2. package/binaryreader.d.ts +20 -0
  3. package/binaryreader.lua +50 -0
  4. package/binarywriter.d.ts +21 -0
  5. package/binarywriter.lua +90 -0
  6. package/core/dummy.d.ts +22 -0
  7. package/core/dummy.lua +133 -0
  8. package/core/game.d.ts +3 -0
  9. package/core/game.lua +24 -0
  10. package/core/mapbounds.d.ts +8 -0
  11. package/core/mapbounds.lua +12 -0
  12. package/core/thread.d.ts +8 -0
  13. package/core/thread.lua +40 -0
  14. package/core/types/ability.d.ts +4 -0
  15. package/core/types/ability.lua +10 -0
  16. package/core/types/async.d.ts +3 -0
  17. package/core/types/async.lua +2 -0
  18. package/core/types/camera.d.ts +4 -0
  19. package/core/types/camera.lua +21 -0
  20. package/core/types/cameraField.d.ts +15 -0
  21. package/core/types/cameraField.lua +38 -0
  22. package/core/types/color.d.ts +16 -0
  23. package/core/types/color.lua +93 -0
  24. package/core/types/destructable.d.ts +31 -0
  25. package/core/types/destructable.lua +245 -0
  26. package/core/types/effect.d.ts +31 -0
  27. package/core/types/effect.lua +209 -0
  28. package/core/types/frame.d.ts +140 -0
  29. package/core/types/frame.lua +882 -0
  30. package/core/types/game.d.ts +8 -0
  31. package/core/types/game.lua +41 -0
  32. package/core/types/group.d.ts +22 -0
  33. package/core/types/group.lua +94 -0
  34. package/core/types/handle.d.ts +48 -0
  35. package/core/types/handle.lua +169 -0
  36. package/core/types/image.d.ts +30 -0
  37. package/core/types/image.lua +121 -0
  38. package/core/types/internal/ability+cooldownRemaining.d.ts +1 -0
  39. package/core/types/internal/ability+cooldownRemaining.lua +0 -0
  40. package/core/types/item.d.ts +4 -0
  41. package/core/types/item.lua +6 -0
  42. package/core/types/missile.d.ts +22 -0
  43. package/core/types/missile.lua +233 -0
  44. package/core/types/order.d.ts +25 -0
  45. package/core/types/order.lua +55 -0
  46. package/core/types/player.d.ts +71 -0
  47. package/core/types/player.lua +448 -0
  48. package/core/types/playerCamera.d.ts +32 -0
  49. package/core/types/playerCamera.lua +162 -0
  50. package/core/types/playerColor.d.ts +40 -0
  51. package/core/types/playerColor.lua +203 -0
  52. package/core/types/rect.d.ts +39 -0
  53. package/core/types/rect.lua +152 -0
  54. package/core/types/region.d.ts +14 -0
  55. package/core/types/region.lua +84 -0
  56. package/core/types/sound.d.ts +69 -0
  57. package/core/types/sound.lua +247 -0
  58. package/core/types/tileCell.d.ts +13 -0
  59. package/core/types/tileCell.lua +100 -0
  60. package/core/types/timer.d.ts +36 -0
  61. package/core/types/timer.lua +230 -0
  62. package/core/types/timerDialog.d.ts +19 -0
  63. package/core/types/timerDialog.lua +95 -0
  64. package/core/types/unit.d.ts +10 -0
  65. package/core/types/unit.lua +24 -0
  66. package/core/types/widget.d.ts +5 -0
  67. package/core/types/widget.lua +2 -0
  68. package/core/util.d.ts +62 -0
  69. package/core/util.lua +464 -0
  70. package/core/vecmath/common.d.ts +18 -0
  71. package/core/vecmath/common.lua +29 -0
  72. package/core/vecmath/mat2.d.ts +73 -0
  73. package/core/vecmath/mat2.lua +261 -0
  74. package/core/vecmath/vec3.d.ts +47 -0
  75. package/core/vecmath/vec3.lua +350 -0
  76. package/core/vecmath/vec4.d.ts +54 -0
  77. package/core/vecmath/vec4.lua +400 -0
  78. package/crypto/ecc.d.ts +6 -0
  79. package/crypto/ecc.lua +1734 -0
  80. package/decl/index.d.ts +116 -0
  81. package/decl/native.d.ts +8198 -0
  82. package/destroyable.d.ts +20 -0
  83. package/destroyable.lua +31 -0
  84. package/engine/ability.d.ts +5 -0
  85. package/engine/ability.lua +7 -0
  86. package/engine/behavior.d.ts +28 -0
  87. package/engine/behavior.lua +181 -0
  88. package/engine/behaviour/ability/apply-buff.d.ts +38 -0
  89. package/engine/behaviour/ability/apply-buff.lua +126 -0
  90. package/engine/behaviour/ability/apply-unit-behavior.d.ts +12 -0
  91. package/engine/behaviour/ability/apply-unit-behavior.lua +36 -0
  92. package/engine/behaviour/ability/damage.d.ts +25 -0
  93. package/engine/behaviour/ability/damage.lua +75 -0
  94. package/engine/behaviour/ability/heal.d.ts +16 -0
  95. package/engine/behaviour/ability/heal.lua +35 -0
  96. package/engine/behaviour/ability/instant-impact.d.ts +6 -0
  97. package/engine/behaviour/ability/instant-impact.lua +25 -0
  98. package/engine/behaviour/ability.d.ts +40 -0
  99. package/engine/behaviour/ability.lua +175 -0
  100. package/engine/behaviour/unit/stun-immunity.d.ts +19 -0
  101. package/engine/behaviour/unit/stun-immunity.lua +67 -0
  102. package/engine/behaviour/unit.d.ts +20 -0
  103. package/engine/behaviour/unit.lua +75 -0
  104. package/engine/buff.d.ts +221 -0
  105. package/engine/buff.lua +1093 -0
  106. package/engine/constants.d.ts +7 -0
  107. package/engine/constants.lua +8 -0
  108. package/engine/index.d.ts +5 -0
  109. package/engine/index.lua +2 -0
  110. package/engine/internal/ability.d.ts +91 -0
  111. package/engine/internal/ability.lua +531 -0
  112. package/engine/internal/item/ability.d.ts +2 -0
  113. package/engine/internal/item/ability.lua +48 -0
  114. package/engine/internal/item+owner.d.ts +7 -0
  115. package/engine/internal/item+owner.lua +22 -0
  116. package/engine/internal/item.d.ts +86 -0
  117. package/engine/internal/item.lua +580 -0
  118. package/engine/internal/mechanics/ability-duration.d.ts +4 -0
  119. package/engine/internal/mechanics/ability-duration.lua +11 -0
  120. package/engine/internal/mechanics/area-damage.d.ts +2 -0
  121. package/engine/internal/mechanics/area-damage.lua +33 -0
  122. package/engine/internal/misc/dummy-units.d.ts +2 -0
  123. package/engine/internal/misc/dummy-units.lua +14 -0
  124. package/engine/internal/object-data/armor-increase.d.ts +2 -0
  125. package/engine/internal/object-data/armor-increase.lua +19 -0
  126. package/engine/internal/object-data/attribute-bonus.d.ts +2 -0
  127. package/engine/internal/object-data/attribute-bonus.lua +15 -0
  128. package/engine/internal/object-data/auto-attack-damage-increase.d.ts +2 -0
  129. package/engine/internal/object-data/auto-attack-damage-increase.lua +17 -0
  130. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +2 -0
  131. package/engine/internal/object-data/auto-attack-speed-increase.lua +14 -0
  132. package/engine/internal/object-data/dummy-inventory.d.ts +2 -0
  133. package/engine/internal/object-data/dummy-inventory.lua +16 -0
  134. package/engine/internal/object-data/dummy-item.d.ts +2 -0
  135. package/engine/internal/object-data/dummy-item.lua +10 -0
  136. package/engine/internal/object-data/ghost-visible.d.ts +2 -0
  137. package/engine/internal/object-data/ghost-visible.lua +15 -0
  138. package/engine/internal/object-data/invulnerable.d.ts +2 -0
  139. package/engine/internal/object-data/invulnerable.lua +11 -0
  140. package/engine/internal/object-data/movement-speed-increase-factor.d.ts +2 -0
  141. package/engine/internal/object-data/movement-speed-increase-factor.lua +18 -0
  142. package/engine/internal/unit/ability.d.ts +143 -0
  143. package/engine/internal/unit/ability.lua +369 -0
  144. package/engine/internal/unit/allowed-targets.d.ts +17 -0
  145. package/engine/internal/unit/allowed-targets.lua +19 -0
  146. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.d.ts +2 -0
  147. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.lua +21 -0
  148. package/engine/internal/unit/bonus.d.ts +41 -0
  149. package/engine/internal/unit/bonus.lua +188 -0
  150. package/engine/internal/unit/buff.d.ts +38 -0
  151. package/engine/internal/unit/buff.lua +81 -0
  152. package/engine/internal/unit/expiration-timer.d.ts +22 -0
  153. package/engine/internal/unit/expiration-timer.lua +44 -0
  154. package/engine/internal/unit/ghost-counter.d.ts +12 -0
  155. package/engine/internal/unit/ghost-counter.lua +26 -0
  156. package/engine/internal/unit/invulnerability-counter.d.ts +12 -0
  157. package/engine/internal/unit/invulnerability-counter.lua +26 -0
  158. package/engine/internal/unit/missile.d.ts +42 -0
  159. package/engine/internal/unit/missile.lua +70 -0
  160. package/engine/internal/unit/movement-speed.d.ts +18 -0
  161. package/engine/internal/unit/movement-speed.lua +42 -0
  162. package/engine/internal/unit/summon-event.d.ts +12 -0
  163. package/engine/internal/unit/summon-event.lua +50 -0
  164. package/engine/internal/unit+ability.d.ts +9 -0
  165. package/engine/internal/unit+ability.lua +59 -0
  166. package/engine/internal/unit+bonus.d.ts +8 -0
  167. package/engine/internal/unit+bonus.lua +40 -0
  168. package/engine/internal/unit+damage.d.ts +69 -0
  169. package/engine/internal/unit+damage.lua +123 -0
  170. package/engine/internal/unit+rally.d.ts +10 -0
  171. package/engine/internal/unit+rally.lua +159 -0
  172. package/engine/internal/unit+spellSteal.d.ts +7 -0
  173. package/engine/internal/unit+spellSteal.lua +64 -0
  174. package/engine/internal/unit+transport.d.ts +12 -0
  175. package/engine/internal/unit+transport.lua +102 -0
  176. package/engine/internal/unit-missile-data.d.ts +2 -0
  177. package/engine/internal/unit-missile-data.lua +107 -0
  178. package/engine/internal/unit-missile-launch.d.ts +7 -0
  179. package/engine/internal/unit-missile-launch.lua +32 -0
  180. package/engine/internal/unit.d.ts +312 -0
  181. package/engine/internal/unit.lua +2430 -0
  182. package/engine/internal/utility.d.ts +2 -0
  183. package/engine/internal/utility.lua +13 -0
  184. package/engine/lightning.d.ts +51 -0
  185. package/engine/lightning.lua +303 -0
  186. package/engine/local-client.d.ts +16 -0
  187. package/engine/local-client.lua +86 -0
  188. package/engine/object-data/auxiliary/animation-name.d.ts +14 -0
  189. package/engine/object-data/auxiliary/animation-name.lua +2 -0
  190. package/engine/object-data/auxiliary/animation-qualifier.d.ts +53 -0
  191. package/engine/object-data/auxiliary/animation-qualifier.lua +2 -0
  192. package/engine/object-data/auxiliary/armor-sound-type.d.ts +8 -0
  193. package/engine/object-data/auxiliary/armor-sound-type.lua +2 -0
  194. package/engine/object-data/auxiliary/attachment-preset.d.ts +15 -0
  195. package/engine/object-data/auxiliary/attachment-preset.lua +29 -0
  196. package/engine/object-data/auxiliary/attack-type.d.ts +11 -0
  197. package/engine/object-data/auxiliary/attack-type.lua +2 -0
  198. package/engine/object-data/auxiliary/buff-polarity.d.ts +6 -0
  199. package/engine/object-data/auxiliary/buff-polarity.lua +2 -0
  200. package/engine/object-data/auxiliary/buff-resistance-type.d.ts +6 -0
  201. package/engine/object-data/auxiliary/buff-resistance-type.lua +2 -0
  202. package/engine/object-data/auxiliary/combat-classification.d.ts +46 -0
  203. package/engine/object-data/auxiliary/combat-classification.lua +206 -0
  204. package/engine/object-data/auxiliary/detection-type.d.ts +7 -0
  205. package/engine/object-data/auxiliary/detection-type.lua +2 -0
  206. package/engine/object-data/auxiliary/model-node-name.d.ts +12 -0
  207. package/engine/object-data/auxiliary/model-node-name.lua +2 -0
  208. package/engine/object-data/auxiliary/model-node-qualifier.d.ts +21 -0
  209. package/engine/object-data/auxiliary/model-node-qualifier.lua +2 -0
  210. package/engine/object-data/auxiliary/movement-type.d.ts +10 -0
  211. package/engine/object-data/auxiliary/movement-type.lua +2 -0
  212. package/engine/object-data/auxiliary/race.d.ts +14 -0
  213. package/engine/object-data/auxiliary/race.lua +2 -0
  214. package/engine/object-data/auxiliary/sound-preset-name.d.ts +8 -0
  215. package/engine/object-data/auxiliary/sound-preset-name.lua +2 -0
  216. package/engine/object-data/auxiliary/sound-set-name.d.ts +35 -0
  217. package/engine/object-data/auxiliary/sound-set-name.lua +2 -0
  218. package/engine/object-data/auxiliary/targeting-type.d.ts +8 -0
  219. package/engine/object-data/auxiliary/targeting-type.lua +2 -0
  220. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +16 -0
  221. package/engine/object-data/auxiliary/tech-tree-dependency.lua +8 -0
  222. package/engine/object-data/auxiliary/unit-classification.d.ts +19 -0
  223. package/engine/object-data/auxiliary/unit-classification.lua +50 -0
  224. package/engine/object-data/auxiliary/weapon-sound-type.d.ts +17 -0
  225. package/engine/object-data/auxiliary/weapon-sound-type.lua +2 -0
  226. package/engine/object-data/entry/ability-type/armor-increase.d.ts +8 -0
  227. package/engine/object-data/entry/ability-type/armor-increase.lua +26 -0
  228. package/engine/object-data/entry/ability-type/attribute-increase.d.ts +12 -0
  229. package/engine/object-data/entry/ability-type/attribute-increase.lua +52 -0
  230. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.lua +26 -0
  232. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.lua +52 -0
  234. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.d.ts +8 -0
  235. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.lua +26 -0
  236. package/engine/object-data/entry/ability-type/bash.d.ts +16 -0
  237. package/engine/object-data/entry/ability-type/bash.lua +78 -0
  238. package/engine/object-data/entry/ability-type/berserk.d.ts +10 -0
  239. package/engine/object-data/entry/ability-type/berserk.lua +39 -0
  240. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +21 -0
  241. package/engine/object-data/entry/ability-type/blank-configurable.lua +249 -0
  242. package/engine/object-data/entry/ability-type/blank-passive.d.ts +7 -0
  243. package/engine/object-data/entry/ability-type/blank-passive.lua +28 -0
  244. package/engine/object-data/entry/ability-type/blizzard.d.ts +16 -0
  245. package/engine/object-data/entry/ability-type/blizzard.lua +78 -0
  246. package/engine/object-data/entry/ability-type/blood-lust.d.ts +12 -0
  247. package/engine/object-data/entry/ability-type/blood-lust.lua +52 -0
  248. package/engine/object-data/entry/ability-type/chain-lightning.d.ts +12 -0
  249. package/engine/object-data/entry/ability-type/chain-lightning.lua +52 -0
  250. package/engine/object-data/entry/ability-type/channel.d.ts +48 -0
  251. package/engine/object-data/entry/ability-type/channel.lua +140 -0
  252. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.d.ts +14 -0
  253. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.lua +65 -0
  254. package/engine/object-data/entry/ability-type/cleaving-attack.d.ts +8 -0
  255. package/engine/object-data/entry/ability-type/cleaving-attack.lua +26 -0
  256. package/engine/object-data/entry/ability-type/cluster-rockets.d.ts +18 -0
  257. package/engine/object-data/entry/ability-type/cluster-rockets.lua +91 -0
  258. package/engine/object-data/entry/ability-type/cripple.d.ts +12 -0
  259. package/engine/object-data/entry/ability-type/cripple.lua +52 -0
  260. package/engine/object-data/entry/ability-type/critical-strike.d.ts +18 -0
  261. package/engine/object-data/entry/ability-type/critical-strike.lua +91 -0
  262. package/engine/object-data/entry/ability-type/curse.d.ts +8 -0
  263. package/engine/object-data/entry/ability-type/curse.lua +26 -0
  264. package/engine/object-data/entry/ability-type/dark-summoning.d.ts +10 -0
  265. package/engine/object-data/entry/ability-type/dark-summoning.lua +39 -0
  266. package/engine/object-data/entry/ability-type/death-coil.d.ts +8 -0
  267. package/engine/object-data/entry/ability-type/death-coil.lua +26 -0
  268. package/engine/object-data/entry/ability-type/disease-cloud.d.ts +15 -0
  269. package/engine/object-data/entry/ability-type/disease-cloud.lua +65 -0
  270. package/engine/object-data/entry/ability-type/divine-shield.d.ts +5 -0
  271. package/engine/object-data/entry/ability-type/divine-shield.lua +12 -0
  272. package/engine/object-data/entry/ability-type/endurance-aura.d.ts +10 -0
  273. package/engine/object-data/entry/ability-type/endurance-aura.lua +39 -0
  274. package/engine/object-data/entry/ability-type/engineering-upgrade.d.ts +13 -0
  275. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +88 -0
  276. package/engine/object-data/entry/ability-type/evasion.d.ts +8 -0
  277. package/engine/object-data/entry/ability-type/evasion.lua +26 -0
  278. package/engine/object-data/entry/ability-type/faerie-fire.d.ts +10 -0
  279. package/engine/object-data/entry/ability-type/faerie-fire.lua +39 -0
  280. package/engine/object-data/entry/ability-type/far-sight.d.ts +9 -0
  281. package/engine/object-data/entry/ability-type/far-sight.lua +26 -0
  282. package/engine/object-data/entry/ability-type/feral-spirit.d.ts +11 -0
  283. package/engine/object-data/entry/ability-type/feral-spirit.lua +39 -0
  284. package/engine/object-data/entry/ability-type/frenzy.d.ts +12 -0
  285. package/engine/object-data/entry/ability-type/frenzy.lua +52 -0
  286. package/engine/object-data/entry/ability-type/frost-nova.d.ts +12 -0
  287. package/engine/object-data/entry/ability-type/frost-nova.lua +52 -0
  288. package/engine/object-data/entry/ability-type/ghost-visible.d.ts +10 -0
  289. package/engine/object-data/entry/ability-type/ghost-visible.lua +39 -0
  290. package/engine/object-data/entry/ability-type/gold-mine.d.ts +12 -0
  291. package/engine/object-data/entry/ability-type/gold-mine.lua +52 -0
  292. package/engine/object-data/entry/ability-type/heal.d.ts +8 -0
  293. package/engine/object-data/entry/ability-type/heal.lua +26 -0
  294. package/engine/object-data/entry/ability-type/healing-salve.d.ts +22 -0
  295. package/engine/object-data/entry/ability-type/healing-salve.lua +78 -0
  296. package/engine/object-data/entry/ability-type/healing-spray.d.ts +18 -0
  297. package/engine/object-data/entry/ability-type/healing-spray.lua +91 -0
  298. package/engine/object-data/entry/ability-type/healing-wave.d.ts +12 -0
  299. package/engine/object-data/entry/ability-type/healing-wave.lua +52 -0
  300. package/engine/object-data/entry/ability-type/holy-light.d.ts +8 -0
  301. package/engine/object-data/entry/ability-type/holy-light.lua +26 -0
  302. package/engine/object-data/entry/ability-type/incinerate.d.ts +18 -0
  303. package/engine/object-data/entry/ability-type/incinerate.lua +91 -0
  304. package/engine/object-data/entry/ability-type/inner-fire.d.ts +14 -0
  305. package/engine/object-data/entry/ability-type/inner-fire.lua +65 -0
  306. package/engine/object-data/entry/ability-type/inventory.d.ts +16 -0
  307. package/engine/object-data/entry/ability-type/inventory.lua +78 -0
  308. package/engine/object-data/entry/ability-type/invulnerable.d.ts +5 -0
  309. package/engine/object-data/entry/ability-type/invulnerable.lua +12 -0
  310. package/engine/object-data/entry/ability-type/lightning-shield.d.ts +8 -0
  311. package/engine/object-data/entry/ability-type/lightning-shield.lua +26 -0
  312. package/engine/object-data/entry/ability-type/movement-speed-increase.d.ts +8 -0
  313. package/engine/object-data/entry/ability-type/movement-speed-increase.lua +26 -0
  314. package/engine/object-data/entry/ability-type/permanent-immolation.d.ts +8 -0
  315. package/engine/object-data/entry/ability-type/permanent-immolation.lua +26 -0
  316. package/engine/object-data/entry/ability-type/phoenix-morph.d.ts +25 -0
  317. package/engine/object-data/entry/ability-type/phoenix-morph.lua +130 -0
  318. package/engine/object-data/entry/ability-type/recall.d.ts +10 -0
  319. package/engine/object-data/entry/ability-type/recall.lua +39 -0
  320. package/engine/object-data/entry/ability-type/rejuvenation.d.ts +20 -0
  321. package/engine/object-data/entry/ability-type/rejuvenation.lua +65 -0
  322. package/engine/object-data/entry/ability-type/searing-arrows.d.ts +8 -0
  323. package/engine/object-data/entry/ability-type/searing-arrows.lua +26 -0
  324. package/engine/object-data/entry/ability-type/shock-wave.d.ts +10 -0
  325. package/engine/object-data/entry/ability-type/shock-wave.lua +39 -0
  326. package/engine/object-data/entry/ability-type/slow-poison.d.ts +12 -0
  327. package/engine/object-data/entry/ability-type/slow-poison.lua +52 -0
  328. package/engine/object-data/entry/ability-type/slow.d.ts +12 -0
  329. package/engine/object-data/entry/ability-type/slow.lua +52 -0
  330. package/engine/object-data/entry/ability-type/spell-damage-reduction.d.ts +10 -0
  331. package/engine/object-data/entry/ability-type/spell-damage-reduction.lua +39 -0
  332. package/engine/object-data/entry/ability-type/spiked-carapace.d.ts +12 -0
  333. package/engine/object-data/entry/ability-type/spiked-carapace.lua +52 -0
  334. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +14 -0
  335. package/engine/object-data/entry/ability-type/spirit-touch.lua +65 -0
  336. package/engine/object-data/entry/ability-type/storm-bolt.d.ts +8 -0
  337. package/engine/object-data/entry/ability-type/storm-bolt.lua +26 -0
  338. package/engine/object-data/entry/ability-type/summon-quilbeast.d.ts +11 -0
  339. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +39 -0
  340. package/engine/object-data/entry/ability-type/summon-water-elemental.d.ts +11 -0
  341. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +39 -0
  342. package/engine/object-data/entry/ability-type.d.ts +148 -0
  343. package/engine/object-data/entry/ability-type.lua +1058 -0
  344. package/engine/object-data/entry/buff-type/applicable.d.ts +16 -0
  345. package/engine/object-data/entry/buff-type/applicable.lua +377 -0
  346. package/engine/object-data/entry/buff-type/blank.d.ts +8 -0
  347. package/engine/object-data/entry/buff-type/blank.lua +17 -0
  348. package/engine/object-data/entry/buff-type.d.ts +64 -0
  349. package/engine/object-data/entry/buff-type.lua +316 -0
  350. package/engine/object-data/entry/destructible-type.d.ts +21 -0
  351. package/engine/object-data/entry/destructible-type.lua +83 -0
  352. package/engine/object-data/entry/item-type/blank.d.ts +8 -0
  353. package/engine/object-data/entry/item-type/blank.lua +21 -0
  354. package/engine/object-data/entry/item-type.d.ts +49 -0
  355. package/engine/object-data/entry/item-type.lua +259 -0
  356. package/engine/object-data/entry/lightning-type.d.ts +37 -0
  357. package/engine/object-data/entry/lightning-type.lua +191 -0
  358. package/engine/object-data/entry/unit-type/blank.d.ts +6 -0
  359. package/engine/object-data/entry/unit-type/blank.lua +13 -0
  360. package/engine/object-data/entry/unit-type.d.ts +218 -0
  361. package/engine/object-data/entry/unit-type.lua +1306 -0
  362. package/engine/object-data/entry/upgrade/blank.d.ts +8 -0
  363. package/engine/object-data/entry/upgrade/blank.lua +22 -0
  364. package/engine/object-data/entry/upgrade.d.ts +59 -0
  365. package/engine/object-data/entry/upgrade.lua +238 -0
  366. package/engine/object-data/entry.d.ts +80 -0
  367. package/engine/object-data/entry.lua +634 -0
  368. package/engine/object-data/utility/object-data-entry-id-generator.d.ts +6 -0
  369. package/engine/object-data/utility/object-data-entry-id-generator.lua +63 -0
  370. package/engine/object-data/utility/order-type-string-id-factory.d.ts +9 -0
  371. package/engine/object-data/utility/order-type-string-id-factory.lua +368 -0
  372. package/engine/object-field/ability.d.ts +115 -0
  373. package/engine/object-field/ability.lua +471 -0
  374. package/engine/object-field/unit.d.ts +15 -0
  375. package/engine/object-field/unit.lua +49 -0
  376. package/engine/object-field.d.ts +84 -0
  377. package/engine/object-field.lua +444 -0
  378. package/engine/random.d.ts +10 -0
  379. package/engine/random.lua +9 -0
  380. package/engine/standard/entries/ability-type.d.ts +8 -0
  381. package/engine/standard/entries/ability-type.lua +8 -0
  382. package/engine/standard/entries/lightning-type.d.ts +16 -0
  383. package/engine/standard/entries/lightning-type.lua +16 -0
  384. package/engine/standard/entries/unit-type.d.ts +63 -0
  385. package/engine/standard/entries/unit-type.lua +63 -0
  386. package/engine/standard/entries/upgrade.d.ts +92 -0
  387. package/engine/standard/entries/upgrade.lua +92 -0
  388. package/engine/standard/fields/ability.d.ts +737 -0
  389. package/engine/standard/fields/ability.lua +749 -0
  390. package/engine/standard/pathing-textures.d.ts +6 -0
  391. package/engine/standard/pathing-textures.lua +7 -0
  392. package/engine/text-tag.d.ts +25 -0
  393. package/engine/text-tag.lua +109 -0
  394. package/engine/unit.d.ts +20 -0
  395. package/engine/unit.lua +31 -0
  396. package/event.d.ts +53 -0
  397. package/event.lua +269 -0
  398. package/exception.d.ts +17 -0
  399. package/exception.lua +53 -0
  400. package/file.d.ts +4 -0
  401. package/file.lua +42 -0
  402. package/global/math.d.ts +21 -0
  403. package/global/math.lua +72 -0
  404. package/global/vec2.d.ts +66 -0
  405. package/global/vec2.lua +159 -0
  406. package/index.d.ts +8 -0
  407. package/index.lua +9 -0
  408. package/lualib_bundle.lua +2629 -0
  409. package/math/vec2.d.ts +18 -0
  410. package/math/vec2.lua +42 -0
  411. package/math.d.ts +39 -0
  412. package/math.lua +91 -0
  413. package/net/signal.d.ts +11 -0
  414. package/net/signal.lua +56 -0
  415. package/net/socket.d.ts +9 -0
  416. package/net/socket.lua +26 -0
  417. package/network.d.ts +31 -0
  418. package/network.lua +194 -0
  419. package/objutil/ability.d.ts +710 -0
  420. package/objutil/ability.lua +3781 -0
  421. package/objutil/buff.d.ts +110 -0
  422. package/objutil/buff.lua +769 -0
  423. package/objutil/dummy.d.ts +2 -0
  424. package/objutil/dummy.lua +49 -0
  425. package/objutil/idgen.d.ts +9 -0
  426. package/objutil/idgen.lua +92 -0
  427. package/objutil/item.d.ts +38 -0
  428. package/objutil/item.lua +254 -0
  429. package/objutil/object.d.ts +43 -0
  430. package/objutil/object.lua +213 -0
  431. package/objutil/unit.d.ts +134 -0
  432. package/objutil/unit.lua +913 -0
  433. package/objutil/upgrade.d.ts +22 -0
  434. package/objutil/upgrade.lua +127 -0
  435. package/operation.d.ts +35 -0
  436. package/operation.lua +179 -0
  437. package/package.json +47 -0
  438. package/patch-lualib.d.ts +2 -0
  439. package/patch-lualib.lua +67 -0
  440. package/patch-natives.d.ts +11 -0
  441. package/patch-natives.lua +14 -0
  442. package/string.d.ts +106 -0
  443. package/string.lua +34 -0
  444. package/time/dayOfWeek.d.ts +97 -0
  445. package/time/dayOfWeek.lua +53 -0
  446. package/time/localDate.d.ts +145 -0
  447. package/time/localDate.lua +236 -0
  448. package/time/localDateTime.d.ts +133 -0
  449. package/time/localDateTime.lua +154 -0
  450. package/time/localTime.d.ts +87 -0
  451. package/time/localTime.lua +91 -0
  452. package/time/month.d.ts +146 -0
  453. package/time/month.lua +129 -0
  454. package/time/year.d.ts +117 -0
  455. package/time/year.lua +81 -0
  456. package/types.d.ts +13 -0
  457. package/types.lua +0 -0
  458. package/util/objectPool.d.ts +6 -0
  459. package/util/objectPool.lua +28 -0
  460. package/util/stream.d.ts +29 -0
  461. package/util/stream.lua +453 -0
  462. package/util/stringBuilder.d.ts +8 -0
  463. package/util/stringBuilder.lua +25 -0
  464. package/utility/arrays.d.ts +57 -0
  465. package/utility/arrays.lua +369 -0
  466. package/utility/base64.d.ts +23 -0
  467. package/utility/base64.lua +177 -0
  468. package/utility/bit-set.d.ts +18 -0
  469. package/utility/bit-set.lua +12 -0
  470. package/utility/functions.d.ts +5 -0
  471. package/utility/functions.lua +90 -0
  472. package/utility/json.d.ts +2 -0
  473. package/utility/json.lua +400 -0
  474. package/utility/linked-set.d.ts +49 -0
  475. package/utility/linked-set.lua +181 -0
  476. package/utility/lua-maps.d.ts +6 -0
  477. package/utility/lua-maps.lua +25 -0
  478. package/utility/lua-sets.d.ts +6 -0
  479. package/utility/lua-sets.lua +37 -0
  480. package/utility/lzw.d.ts +2 -0
  481. package/utility/lzw.lua +161 -0
  482. package/utility/observable-array.d.ts +17 -0
  483. package/utility/observable-array.lua +30 -0
  484. package/utility/preconditions.d.ts +23 -0
  485. package/utility/preconditions.lua +58 -0
  486. package/utility/records.d.ts +3 -0
  487. package/utility/records.lua +9 -0
  488. package/utility/reflection.d.ts +4 -0
  489. package/utility/reflection.lua +31 -0
  490. package/utility/strings.d.ts +2 -0
  491. package/utility/strings.lua +44 -0
  492. package/utility/types.d.ts +39 -0
  493. package/utility/types.lua +2 -0
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export declare const dummyUnitId: number;
@@ -0,0 +1,49 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
3
+ local ____exports = {}
4
+ local ____ability = require("objutil.ability")
5
+ local AbilityDefinitionPermanentInvisibility = ____ability.AbilityDefinitionPermanentInvisibility
6
+ local ____unit = require("objutil.unit")
7
+ local UnitDefinition = ____unit.UnitDefinition
8
+ local idgen = require("objutil.idgen")
9
+ ____exports.dummyUnitId = compiletime(function()
10
+ local disableAutoAcquireAttackTargetsAbility = __TS__New(AbilityDefinitionPermanentInvisibility)
11
+ disableAutoAcquireAttackTargetsAbility.name = "[Warscript/Dummy] Disable Auto-Acquire Attack Targets"
12
+ disableAutoAcquireAttackTargetsAbility.autoAcquireAttackTargets = false
13
+ disableAutoAcquireAttackTargetsAbility.durationNormal = -1
14
+ disableAutoAcquireAttackTargetsAbility.durationHero = -1
15
+ local dummy = __TS__New(
16
+ UnitDefinition,
17
+ "ewsp",
18
+ idgen.unit(),
19
+ {
20
+ name = "[Warscript/Dummy] Unit",
21
+ model = "",
22
+ foodCost = 0,
23
+ movementType = "none",
24
+ maxMana = 999999,
25
+ abilitiesNormal = {"Avul", "Aloc", "AInv", disableAutoAcquireAttackTargetsAbility.id}
26
+ }
27
+ )
28
+ local weapon = dummy.weapons[1]
29
+ weapon.enabled = true
30
+ weapon.attackBackswing = 0
31
+ weapon.attackPoint = 0
32
+ weapon.cooldown = 0
33
+ weapon.range = 99999
34
+ weapon.attackType = "spells"
35
+ weapon.weaponType = "instant"
36
+ weapon.baseDamage = -1
37
+ weapon.diceNumber = 1
38
+ weapon.diceSides = 1
39
+ weapon.targetsAllowed = {
40
+ "ground",
41
+ "air",
42
+ "structure",
43
+ "ward",
44
+ "vulnerable",
45
+ "invulnerable"
46
+ }
47
+ return fourCC(dummy.id)
48
+ end)
49
+ return ____exports
@@ -0,0 +1,9 @@
1
+ /** @noSelfInFile */
2
+ export declare function unit(): string;
3
+ export declare function hero(): string;
4
+ export declare function ability(): string;
5
+ export declare function doodad(): string;
6
+ export declare function destructable(): string;
7
+ export declare function buff(): string;
8
+ export declare function item(): string;
9
+ export declare function upgrade(): string;
@@ -0,0 +1,92 @@
1
+ local ____exports = {}
2
+ local firstValidChar = 48
3
+ local lastValidChar = 126
4
+ local function nextValidCharId(char)
5
+ if char < 48 then
6
+ return 48
7
+ end
8
+ if char > 126 then
9
+ return nil
10
+ end
11
+ if char == 57 then
12
+ return 97
13
+ end
14
+ return char + 1
15
+ end
16
+ local function isIdOccupied(id)
17
+ if currentMap ~= nil then
18
+ for ____, v in pairs(currentMap.objects) do
19
+ if v[id] ~= nil then
20
+ return true
21
+ end
22
+ end
23
+ end
24
+ return false
25
+ end
26
+ local function nextIdFrom(id)
27
+ if #id ~= 4 then
28
+ error("id must be 4-char")
29
+ end
30
+ local b1, b2, b3, b4 = string.byte(id, 1, 4)
31
+ repeat
32
+ do
33
+ if b4 < lastValidChar then
34
+ b4 = nextValidCharId(b4)
35
+ elseif b3 < lastValidChar then
36
+ b4 = firstValidChar
37
+ b3 = nextValidCharId(b3)
38
+ elseif b2 < lastValidChar then
39
+ b4 = firstValidChar
40
+ b3 = firstValidChar
41
+ b2 = nextValidCharId(b2)
42
+ elseif b1 < lastValidChar then
43
+ b4 = firstValidChar
44
+ b3 = firstValidChar
45
+ b2 = firstValidChar
46
+ b1 = nextValidCharId(b1)
47
+ end
48
+ end
49
+ until not isIdOccupied(string.char(b1, b2, b3, b4))
50
+ return string.char(b1, b2, b3, b4)
51
+ end
52
+ local unitId = "x000"
53
+ local heroId = "H000"
54
+ local abilityId = "A000"
55
+ local doodadId = "DO00"
56
+ local destructableId = "X000"
57
+ local buffId = "B000"
58
+ local itemId = "I000"
59
+ local upgradeId = "R000"
60
+ function ____exports.unit()
61
+ unitId = nextIdFrom(unitId)
62
+ return unitId
63
+ end
64
+ function ____exports.hero()
65
+ heroId = nextIdFrom(heroId)
66
+ return heroId
67
+ end
68
+ function ____exports.ability()
69
+ abilityId = nextIdFrom(abilityId)
70
+ return abilityId
71
+ end
72
+ function ____exports.doodad()
73
+ doodadId = nextIdFrom(doodadId)
74
+ return doodadId
75
+ end
76
+ function ____exports.destructable()
77
+ destructableId = nextIdFrom(destructableId)
78
+ return destructableId
79
+ end
80
+ function ____exports.buff()
81
+ buffId = nextIdFrom(buffId)
82
+ return buffId
83
+ end
84
+ function ____exports.item()
85
+ itemId = nextIdFrom(itemId)
86
+ return itemId
87
+ end
88
+ function ____exports.upgrade()
89
+ upgradeId = nextIdFrom(upgradeId)
90
+ return upgradeId
91
+ end
92
+ return ____exports
@@ -0,0 +1,38 @@
1
+ /** @noSelfInFile */
2
+ import { ObjectDefinition } from "./object";
3
+ export declare class ItemDefinition extends ObjectDefinition {
4
+ readonly id: string;
5
+ constructor(baseId: string, id?: string, ctor?: Readonly<Partial<Omit<ItemDefinition, "id">>>);
6
+ get name(): string;
7
+ set name(v: string);
8
+ get description(): string;
9
+ set description(v: string);
10
+ get tooltip(): string;
11
+ set tooltip(v: string);
12
+ get tooltipExtended(): string;
13
+ set tooltipExtended(v: string);
14
+ get icon(): string;
15
+ set icon(v: string);
16
+ get model(): string;
17
+ set model(v: string);
18
+ get sellable(): boolean;
19
+ set sellable(sellable: boolean);
20
+ get pawnable(): boolean;
21
+ set pawnable(pawnable: boolean);
22
+ get goldCost(): number;
23
+ set goldCost(goldCost: number);
24
+ get lumberCost(): number;
25
+ set lumberCost(lumberCost: number);
26
+ get usable(): boolean;
27
+ set usable(usable: boolean);
28
+ get perishable(): boolean;
29
+ set perishable(perishable: boolean);
30
+ get stack(): number;
31
+ set stack(maxStack: number);
32
+ get maxStack(): number;
33
+ set maxStack(maxStack: number);
34
+ get abilities(): number[];
35
+ set abilities(v: (number | string)[]);
36
+ get cooldownGroupId(): number;
37
+ set cooldownGroupId(v: number | string);
38
+ }
@@ -0,0 +1,254 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__StringSplit = ____lualib.__TS__StringSplit
6
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
7
+ local ____exports = {}
8
+ local ____object = require("objutil.object")
9
+ local ObjectDefinition = ____object.ObjectDefinition
10
+ local idgen = require("objutil.idgen")
11
+ ____exports.ItemDefinition = __TS__Class()
12
+ local ItemDefinition = ____exports.ItemDefinition
13
+ ItemDefinition.name = "ItemDefinition"
14
+ __TS__ClassExtends(ItemDefinition, ObjectDefinition)
15
+ function ItemDefinition.prototype.____constructor(self, baseId, id, ctor)
16
+ ObjectDefinition.prototype.____constructor(
17
+ self,
18
+ currentMap.objects.item:newObject(
19
+ id or idgen.item(),
20
+ baseId
21
+ )
22
+ )
23
+ self.id = self.object.id
24
+ if ctor then
25
+ for key, value in pairs(ctor) do
26
+ self[key] = value
27
+ end
28
+ end
29
+ end
30
+ __TS__SetDescriptor(
31
+ ItemDefinition.prototype,
32
+ "name",
33
+ {
34
+ get = function(self)
35
+ return self:getStringField("unam")
36
+ end,
37
+ set = function(self, v)
38
+ self:setStringField("unam", v)
39
+ end
40
+ },
41
+ true
42
+ )
43
+ __TS__SetDescriptor(
44
+ ItemDefinition.prototype,
45
+ "description",
46
+ {
47
+ get = function(self)
48
+ return self:getStringField("ides")
49
+ end,
50
+ set = function(self, v)
51
+ self:setStringField("ides", v)
52
+ end
53
+ },
54
+ true
55
+ )
56
+ __TS__SetDescriptor(
57
+ ItemDefinition.prototype,
58
+ "tooltip",
59
+ {
60
+ get = function(self)
61
+ return self:getStringField("utip")
62
+ end,
63
+ set = function(self, v)
64
+ self:setStringField("utip", v)
65
+ end
66
+ },
67
+ true
68
+ )
69
+ __TS__SetDescriptor(
70
+ ItemDefinition.prototype,
71
+ "tooltipExtended",
72
+ {
73
+ get = function(self)
74
+ return self:getStringField("utub")
75
+ end,
76
+ set = function(self, v)
77
+ self:setStringField("utub", v)
78
+ end
79
+ },
80
+ true
81
+ )
82
+ __TS__SetDescriptor(
83
+ ItemDefinition.prototype,
84
+ "icon",
85
+ {
86
+ get = function(self)
87
+ return self:getStringField("iico")
88
+ end,
89
+ set = function(self, v)
90
+ self:setStringField("iico", v)
91
+ end
92
+ },
93
+ true
94
+ )
95
+ __TS__SetDescriptor(
96
+ ItemDefinition.prototype,
97
+ "model",
98
+ {
99
+ get = function(self)
100
+ return self:getStringField("ifil")
101
+ end,
102
+ set = function(self, v)
103
+ self:setStringField("ifil", v)
104
+ end
105
+ },
106
+ true
107
+ )
108
+ __TS__SetDescriptor(
109
+ ItemDefinition.prototype,
110
+ "sellable",
111
+ {
112
+ get = function(self)
113
+ return self:getBooleanField("isel")
114
+ end,
115
+ set = function(self, sellable)
116
+ self:setBooleanField("isel", sellable)
117
+ end
118
+ },
119
+ true
120
+ )
121
+ __TS__SetDescriptor(
122
+ ItemDefinition.prototype,
123
+ "pawnable",
124
+ {
125
+ get = function(self)
126
+ return self:getBooleanField("ipaw")
127
+ end,
128
+ set = function(self, pawnable)
129
+ self:setBooleanField("ipaw", pawnable)
130
+ end
131
+ },
132
+ true
133
+ )
134
+ __TS__SetDescriptor(
135
+ ItemDefinition.prototype,
136
+ "goldCost",
137
+ {
138
+ get = function(self)
139
+ return self:getNumberField("igol")
140
+ end,
141
+ set = function(self, goldCost)
142
+ self:setNumberField("igol", goldCost)
143
+ end
144
+ },
145
+ true
146
+ )
147
+ __TS__SetDescriptor(
148
+ ItemDefinition.prototype,
149
+ "lumberCost",
150
+ {
151
+ get = function(self)
152
+ return self:getNumberField("ilum")
153
+ end,
154
+ set = function(self, lumberCost)
155
+ self:setNumberField("ilum", lumberCost)
156
+ end
157
+ },
158
+ true
159
+ )
160
+ __TS__SetDescriptor(
161
+ ItemDefinition.prototype,
162
+ "usable",
163
+ {
164
+ get = function(self)
165
+ return self:getBooleanField("iusa")
166
+ end,
167
+ set = function(self, usable)
168
+ self:setBooleanField("iusa", usable)
169
+ end
170
+ },
171
+ true
172
+ )
173
+ __TS__SetDescriptor(
174
+ ItemDefinition.prototype,
175
+ "perishable",
176
+ {
177
+ get = function(self)
178
+ return self:getBooleanField("iper")
179
+ end,
180
+ set = function(self, perishable)
181
+ self:setBooleanField("iper", perishable)
182
+ end
183
+ },
184
+ true
185
+ )
186
+ __TS__SetDescriptor(
187
+ ItemDefinition.prototype,
188
+ "stack",
189
+ {
190
+ get = function(self)
191
+ return self:getNumberField("iuse")
192
+ end,
193
+ set = function(self, maxStack)
194
+ self:setNumberField("iuse", maxStack)
195
+ end
196
+ },
197
+ true
198
+ )
199
+ __TS__SetDescriptor(
200
+ ItemDefinition.prototype,
201
+ "maxStack",
202
+ {
203
+ get = function(self)
204
+ return self:getNumberField("ista")
205
+ end,
206
+ set = function(self, maxStack)
207
+ self:setNumberField("ista", maxStack)
208
+ end
209
+ },
210
+ true
211
+ )
212
+ __TS__SetDescriptor(
213
+ ItemDefinition.prototype,
214
+ "abilities",
215
+ {
216
+ get = function(self)
217
+ return __TS__ArrayMap(
218
+ __TS__StringSplit(
219
+ self:getStringField("iabi"),
220
+ ","
221
+ ),
222
+ function(____, v) return util.s2id(v) end
223
+ )
224
+ end,
225
+ set = function(self, v)
226
+ local value = table.concat(
227
+ __TS__ArrayMap(
228
+ v,
229
+ function(____, v) return util.id2s(v) end
230
+ ),
231
+ ","
232
+ )
233
+ self:setStringField("iabi", value)
234
+ end
235
+ },
236
+ true
237
+ )
238
+ __TS__SetDescriptor(
239
+ ItemDefinition.prototype,
240
+ "cooldownGroupId",
241
+ {
242
+ get = function(self)
243
+ return util.s2id(self:getStringField("icid"))
244
+ end,
245
+ set = function(self, v)
246
+ self:setStringField(
247
+ "icid",
248
+ util.id2s(v)
249
+ )
250
+ end
251
+ },
252
+ true
253
+ )
254
+ return ____exports
@@ -0,0 +1,43 @@
1
+ /// <reference types="warpack-types/warpack" />
2
+ /** @noSelfInFile */
3
+ export type LevelFieldValueProvider<T> = T | T[] | ((level: number, value: T) => T);
4
+ export declare namespace ObjectDefinition {
5
+ type TargetType = "air" | "alive" | "allies" | "ancient" | "dead" | "debris" | "decoration" | "enemies" | "friend" | "ground" | "hero" | "invulnerable" | "item" | "mechanical" | "neutral" | "nonancient" | "none" | "nonhero" | "nonsapper" | "notself" | "organic" | "player" | "sapper" | "self" | "structure" | "terrain" | "tree" | "vulnerable" | "wall" | "ward";
6
+ }
7
+ export declare class ObjectDefinition {
8
+ protected readonly object: WarObject;
9
+ protected constructor(object: WarObject);
10
+ protected setBooleanField(field: string, value: boolean): void;
11
+ protected getBooleanField(field: string): boolean;
12
+ protected setNumberField(field: string, value: number): void;
13
+ protected getNumberField(field: string): number;
14
+ protected setStringField(field: string, value: string): void;
15
+ protected getStringField(field: string): string;
16
+ protected getStringListField(field: string): string[];
17
+ protected setBooleanLevelField(field: string, values: boolean | boolean[] | ((level: number, value: boolean) => boolean)): void;
18
+ protected getBooleanLevelField(field: string): boolean[];
19
+ protected setNumberLevelField(field: string, values: number | number[] | ((level: number, value: number) => number)): void;
20
+ protected getNumberLevelField(field: string): number[];
21
+ protected setStringLevelField(field: string, values: string | string[] | ((level: number, value: string) => string)): void;
22
+ protected getStringLevelField(field: string): string[];
23
+ protected getStringListLevelField(field: string): string[][];
24
+ private getLevelField;
25
+ private setLevelField;
26
+ protected static getLevelFieldValue<T extends ObjectDefinition | string | number | boolean | undefined>(level: number, value: T, values: LevelFieldValueProvider<T>): T;
27
+ protected static getLevelArrayFieldValue<T extends ObjectDefinition | string | number | boolean | undefined>(level: number, value: T[], values: LevelFieldValueProvider<T[]>): T[];
28
+ }
29
+ interface ObjectConstructor {
30
+ [index: string]: string | number | undefined;
31
+ }
32
+ export declare enum ObjectType {
33
+ ABILITY = 0,
34
+ ITEM = 1,
35
+ UNIT = 2,
36
+ DESTRUCTABLE = 3,
37
+ DOODAD = 4,
38
+ BUFF = 5,
39
+ UPGRADE = 6
40
+ }
41
+ export declare function createObject(objectType: ObjectType, newId: string, base: string, ctor?: ObjectConstructor): WarObject;
42
+ export declare function createObject(objectType: ObjectType, base: string, ctor?: ObjectConstructor): WarObject;
43
+ export {};
@@ -0,0 +1,213 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__StringSplit = ____lualib.__TS__StringSplit
4
+ local __TS__ArrayIsArray = ____lualib.__TS__ArrayIsArray
5
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
6
+ local ____exports = {}
7
+ local createObjectImpl, map
8
+ local idgen = require("objutil.idgen")
9
+ function createObjectImpl(objectType, newId, base, ctor)
10
+ if not currentMap then
11
+ error("objects can only be created when a map is active")
12
+ end
13
+ local objects = map[objectType]:getObjects(currentMap.objects)
14
+ local object = objects:newObject(newId, base)
15
+ for field, value in pairs(ctor) do
16
+ object:setField(field, value)
17
+ end
18
+ return object
19
+ end
20
+ ____exports.ObjectDefinition = __TS__Class()
21
+ local ObjectDefinition = ____exports.ObjectDefinition
22
+ ObjectDefinition.name = "ObjectDefinition"
23
+ function ObjectDefinition.prototype.____constructor(self, object)
24
+ self.object = object
25
+ end
26
+ function ObjectDefinition.prototype.setBooleanField(self, field, value)
27
+ self.object:setField(field, value and 1 or 0)
28
+ end
29
+ function ObjectDefinition.prototype.getBooleanField(self, field)
30
+ return (tonumber(self.object:getField(field) or 0) or 0) ~= 0
31
+ end
32
+ function ObjectDefinition.prototype.setNumberField(self, field, value)
33
+ self.object:setField(field, value)
34
+ end
35
+ function ObjectDefinition.prototype.getNumberField(self, field)
36
+ return tonumber(self.object:getField(field) or 0) or 0
37
+ end
38
+ function ObjectDefinition.prototype.setStringField(self, field, value)
39
+ self.object:setField(field, value)
40
+ end
41
+ function ObjectDefinition.prototype.getStringField(self, field)
42
+ return tostring(self.object:getField(field) or "")
43
+ end
44
+ function ObjectDefinition.prototype.getStringListField(self, field)
45
+ local value = self:getStringField(field)
46
+ return (value == "" or value == "_") and ({}) or __TS__StringSplit(value, ",")
47
+ end
48
+ function ObjectDefinition.prototype.setBooleanLevelField(self, field, values)
49
+ self:setLevelField(
50
+ field,
51
+ __TS__ArrayIsArray(values) and __TS__ArrayMap(
52
+ values,
53
+ function(____, value) return value and 1 or 0 end
54
+ ) or (function(level, value)
55
+ return type(values) == "function" and (values(
56
+ level,
57
+ (tonumber(value or 0) or 0) ~= 0
58
+ ) and 1 or 0) or (values and 1 or 0)
59
+ end)
60
+ )
61
+ end
62
+ function ObjectDefinition.prototype.getBooleanLevelField(self, field)
63
+ return __TS__ArrayMap(
64
+ self:getLevelField(field),
65
+ function(____, value) return (tonumber(value) or 0) ~= 0 end
66
+ )
67
+ end
68
+ function ObjectDefinition.prototype.setNumberLevelField(self, field, values)
69
+ self:setLevelField(
70
+ field,
71
+ __TS__ArrayIsArray(values) and values or (function(level, value)
72
+ return type(values) == "function" and values(
73
+ level,
74
+ tonumber(value or 0) or 0
75
+ ) or values
76
+ end)
77
+ )
78
+ end
79
+ function ObjectDefinition.prototype.getNumberLevelField(self, field)
80
+ return __TS__ArrayMap(
81
+ self:getLevelField(field),
82
+ function(____, value) return tonumber(value) or 0 end
83
+ )
84
+ end
85
+ function ObjectDefinition.prototype.setStringLevelField(self, field, values)
86
+ self:setLevelField(
87
+ field,
88
+ __TS__ArrayIsArray(values) and values or (function(level, value)
89
+ return type(values) == "function" and values(
90
+ level,
91
+ tostring(value or "")
92
+ ) or values
93
+ end)
94
+ )
95
+ end
96
+ function ObjectDefinition.prototype.getStringLevelField(self, field)
97
+ return __TS__ArrayMap(
98
+ self:getLevelField(field),
99
+ function(____, value) return tostring(value) end
100
+ )
101
+ end
102
+ function ObjectDefinition.prototype.getStringListLevelField(self, field)
103
+ return __TS__ArrayMap(
104
+ __TS__ArrayMap(
105
+ self:getLevelField(field),
106
+ function(____, value) return tostring(value) end
107
+ ),
108
+ function(____, value)
109
+ if value == "" or value == "_" then
110
+ return {}
111
+ end
112
+ return __TS__StringSplit(value, ",")
113
+ end
114
+ )
115
+ end
116
+ function ObjectDefinition.prototype.getLevelField(self, field)
117
+ local values = {}
118
+ local object = self.object
119
+ for level = 1, tonumber(object:getField("levels")) or 1 do
120
+ values[level] = object:getField((field .. "+") .. tostring(level)) or ""
121
+ end
122
+ return values
123
+ end
124
+ function ObjectDefinition.prototype.setLevelField(self, field, values)
125
+ local object = self.object
126
+ for level = 1, tonumber(object:getField("levels")) or tonumber(object:getField("maxlevel")) or 0 do
127
+ local value = ____exports.ObjectDefinition:getLevelFieldValue(
128
+ level - 1,
129
+ object:getField((field .. "+") .. tostring(level)),
130
+ values
131
+ )
132
+ object:setField(
133
+ (field .. "+") .. tostring(level),
134
+ value
135
+ )
136
+ end
137
+ end
138
+ function ObjectDefinition.getLevelFieldValue(self, level, value, values)
139
+ local ____Array_isArray_result_1
140
+ if __TS__ArrayIsArray(values) then
141
+ ____Array_isArray_result_1 = values[level + 1]
142
+ else
143
+ local ____temp_0
144
+ if type(values) == "function" then
145
+ ____temp_0 = values(level, value)
146
+ else
147
+ ____temp_0 = values
148
+ end
149
+ ____Array_isArray_result_1 = ____temp_0
150
+ end
151
+ return ____Array_isArray_result_1
152
+ end
153
+ function ObjectDefinition.getLevelArrayFieldValue(self, level, value, values)
154
+ return type(values) == "function" and values(level, value) or (__TS__ArrayIsArray(values[1]) and values[1] or values)
155
+ end
156
+ ____exports.ObjectType = ObjectType or ({})
157
+ ____exports.ObjectType.ABILITY = 0
158
+ ____exports.ObjectType[____exports.ObjectType.ABILITY] = "ABILITY"
159
+ ____exports.ObjectType.ITEM = 1
160
+ ____exports.ObjectType[____exports.ObjectType.ITEM] = "ITEM"
161
+ ____exports.ObjectType.UNIT = 2
162
+ ____exports.ObjectType[____exports.ObjectType.UNIT] = "UNIT"
163
+ ____exports.ObjectType.DESTRUCTABLE = 3
164
+ ____exports.ObjectType[____exports.ObjectType.DESTRUCTABLE] = "DESTRUCTABLE"
165
+ ____exports.ObjectType.DOODAD = 4
166
+ ____exports.ObjectType[____exports.ObjectType.DOODAD] = "DOODAD"
167
+ ____exports.ObjectType.BUFF = 5
168
+ ____exports.ObjectType[____exports.ObjectType.BUFF] = "BUFF"
169
+ ____exports.ObjectType.UPGRADE = 6
170
+ ____exports.ObjectType[____exports.ObjectType.UPGRADE] = "UPGRADE"
171
+ map = {
172
+ [____exports.ObjectType.ABILITY] = {
173
+ getObjects = function(____, objects) return objects.ability end,
174
+ idgen = idgen.ability
175
+ },
176
+ [____exports.ObjectType.ITEM] = {
177
+ getObjects = function(____, objects) return objects.item end,
178
+ idgen = idgen.item
179
+ },
180
+ [____exports.ObjectType.UNIT] = {
181
+ getObjects = function(____, objects) return objects.unit end,
182
+ idgen = idgen.unit
183
+ },
184
+ [____exports.ObjectType.DESTRUCTABLE] = {
185
+ getObjects = function(____, objects) return objects.destructable end,
186
+ idgen = idgen.destructable
187
+ },
188
+ [____exports.ObjectType.DOODAD] = {
189
+ getObjects = function(____, objects) return objects.doodad end,
190
+ idgen = idgen.doodad
191
+ },
192
+ [____exports.ObjectType.BUFF] = {
193
+ getObjects = function(____, objects) return objects.buff end,
194
+ idgen = idgen.buff
195
+ },
196
+ [____exports.ObjectType.UPGRADE] = {
197
+ getObjects = function(____, objects) return objects.upgrade end,
198
+ idgen = idgen.upgrade
199
+ }
200
+ }
201
+ function ____exports.createObject(objectType, newIdOrBase, baseOrCtor, ctor)
202
+ if type(baseOrCtor) == "string" then
203
+ return createObjectImpl(objectType, newIdOrBase, baseOrCtor, ctor or ({}))
204
+ else
205
+ return createObjectImpl(
206
+ objectType,
207
+ map[objectType]:idgen(),
208
+ newIdOrBase,
209
+ baseOrCtor or ({})
210
+ )
211
+ end
212
+ end
213
+ return ____exports