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,7 @@
1
+ /** @noSelfInFile */
2
+ export declare const DAMAGE_BONUS_PER_PRIMARY_ATTRIBUTE_POINT = 1;
3
+ export declare const MAX_HEALTH_BONUS_PER_STRENGTH_POINT = 25;
4
+ export declare const HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = 0.05;
5
+ export declare const ARMOR_BONUS_PER_AGILITY_POINT = 0.3;
6
+ export declare const MAX_MANA_BONUS_PER_INTELLIGENCE_POINT = 15;
7
+ export declare const MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = 0.05;
@@ -0,0 +1,8 @@
1
+ local ____exports = {}
2
+ ____exports.DAMAGE_BONUS_PER_PRIMARY_ATTRIBUTE_POINT = 1
3
+ ____exports.MAX_HEALTH_BONUS_PER_STRENGTH_POINT = 25
4
+ ____exports.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = 0.05
5
+ ____exports.ARMOR_BONUS_PER_AGILITY_POINT = 0.3
6
+ ____exports.MAX_MANA_BONUS_PER_INTELLIGENCE_POINT = 15
7
+ ____exports.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = 0.05
8
+ return ____exports
@@ -0,0 +1,5 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum GraphicsMode {
3
+ SD = 0,
4
+ HD = 1
5
+ }
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -0,0 +1,91 @@
1
+ /** @noSelfInFile */
2
+ import { Handle } from "../../core/types/handle";
3
+ import { Event } from "../../event";
4
+ import type { Item } from "../../core/types/item";
5
+ import type { Unit } from "./unit";
6
+ import type { AbilityTypeId } from "../object-data/entry/ability-type";
7
+ interface Fields<K, V> {
8
+ set(field: K, value: V): boolean;
9
+ get(field: K): V;
10
+ has(field: K): boolean;
11
+ }
12
+ interface AbilityLevel {
13
+ realFields: Fields<jabilityreallevelfield, number>;
14
+ }
15
+ type jabilityfield = jabilityintegerfield | jabilityrealfield | jabilitybooleanfield | jabilitystringfield | jabilityintegerlevelfield | jabilityreallevelfield | jabilitybooleanlevelfield | jabilitystringlevelfield;
16
+ export declare class AbilitySnapshot {
17
+ }
18
+ export declare abstract class Ability extends Handle<jability> {
19
+ readonly typeId: AbilityTypeId;
20
+ protected constructor(handle: jability, typeId: number);
21
+ toString(): string;
22
+ get parentTypeId(): number;
23
+ get orderId(): number;
24
+ abstract readonly owner: Unit | Item;
25
+ getSnapshot(): AbilitySnapshot;
26
+ hasField(field: jabilityfield | number): boolean;
27
+ getField(field: jabilityintegerfield | jabilityrealfield): number;
28
+ getField(field: jabilitybooleanfield): boolean;
29
+ getField(field: jabilitystringfield): string;
30
+ getField(field: jabilityintegerlevelfield | jabilityreallevelfield, level?: number): number;
31
+ getField(field: jabilitybooleanlevelfield, level?: number): boolean;
32
+ getField(field: jabilitystringlevelfield, level?: number): string;
33
+ setField(field: jabilityintegerfield | jabilityrealfield, value: number): boolean;
34
+ setField(field: jabilitybooleanfield, value: boolean): boolean;
35
+ setField(field: jabilitystringfield, value: string): boolean;
36
+ setField(field: jabilityintegerlevelfield, value: number): boolean;
37
+ setField(field: jabilityreallevelfield, value: number): boolean;
38
+ setField(field: jabilitybooleanlevelfield, value: boolean): boolean;
39
+ setField(field: jabilitystringlevelfield, value: string): boolean;
40
+ setField(field: jabilityintegerlevelfield | jabilityreallevelfield, level: number, value: number): boolean;
41
+ setField(field: jabilitybooleanlevelfield, level: number, value: boolean): boolean;
42
+ setField(field: jabilitystringlevelfield, level: number, value: string): boolean;
43
+ get realFields(): Fields<jabilityrealfield, number>;
44
+ get levels(): readonly AbilityLevel[];
45
+ abstract get level(): number;
46
+ static get onCreate(): Event<[Ability]>;
47
+ static get destroyEvent(): Event<[Ability]>;
48
+ }
49
+ /**
50
+ * Can happen in extreme edge cases such as removing an ability from a unit during a chain of ability events.
51
+ */
52
+ export declare class UnrecognizedAbility extends Ability {
53
+ readonly owner: Unit;
54
+ constructor(typeId: number, owner: Unit);
55
+ get level(): number;
56
+ }
57
+ export declare class UnitAbility extends Ability {
58
+ readonly owner: Unit;
59
+ private readonly u;
60
+ constructor(handle: jability, typeId: number, owner: Unit);
61
+ get level(): number;
62
+ set level(v: number);
63
+ get cooldownRemaining(): number;
64
+ set cooldownRemaining(v: number);
65
+ static get onCreate(): Event<[UnitAbility]>;
66
+ static get onDestroy(): Event<[UnitAbility]>;
67
+ }
68
+ export declare class ItemAbility extends Ability {
69
+ readonly owner: Item;
70
+ constructor(handle: jability, typeId: number, owner: Item);
71
+ getField(field: jabilityintegerfield | jabilityrealfield): number;
72
+ getField(field: jabilitybooleanfield): boolean;
73
+ getField(field: jabilitystringfield): string;
74
+ getField(field: jabilityintegerlevelfield | jabilityreallevelfield, level?: number): number;
75
+ getField(field: jabilitybooleanlevelfield, level?: number): boolean;
76
+ getField(field: jabilitystringlevelfield, level?: number): string;
77
+ setField(field: jabilityintegerfield | jabilityrealfield, value: number): boolean;
78
+ setField(field: jabilitybooleanfield, value: boolean): boolean;
79
+ setField(field: jabilitystringfield, value: string): boolean;
80
+ setField(field: jabilityintegerlevelfield, value: number): boolean;
81
+ setField(field: jabilityreallevelfield, value: number): boolean;
82
+ setField(field: jabilitybooleanlevelfield, value: boolean): boolean;
83
+ setField(field: jabilitystringlevelfield, value: string): boolean;
84
+ setField(field: jabilityintegerlevelfield | jabilityreallevelfield, level: number, value: number): boolean;
85
+ setField(field: jabilitybooleanlevelfield, level: number, value: boolean): boolean;
86
+ setField(field: jabilitystringlevelfield, level: number, value: string): boolean;
87
+ get level(): number;
88
+ static get onCreate(): Event<[ItemAbility]>;
89
+ static get onDestroy(): Event<[ItemAbility]>;
90
+ }
91
+ export {};
@@ -0,0 +1,531 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
3
+ local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
4
+ local __TS__Class = ____lualib.__TS__Class
5
+ local __TS__New = ____lualib.__TS__New
6
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
7
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
8
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
9
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
10
+ local ____exports = {}
11
+ local ____handle = require("core.types.handle")
12
+ local Handle = ____handle.Handle
13
+ local ____ability = require("engine.internal.item.ability")
14
+ local doAbilityAction = ____ability.doAbilityAction
15
+ local getUnitAbilityLevel = GetUnitAbilityLevel
16
+ local setUnitAbilityLevel = SetUnitAbilityLevel
17
+ local setAbilityIntegerField = BlzSetAbilityIntegerField
18
+ local setAbilityRealField = BlzSetAbilityRealField
19
+ local setAbilityBooleanField = BlzSetAbilityBooleanField
20
+ local setAbilityStringField = BlzSetAbilityStringField
21
+ local setAbilityIntegerLevelField = BlzSetAbilityIntegerLevelField
22
+ local setAbilityRealLevelField = BlzSetAbilityRealLevelField
23
+ local setAbilityBooleanLevelField = BlzSetAbilityBooleanLevelField
24
+ local setAbilityStringLevelField = BlzSetAbilityStringLevelField
25
+ local getAbilityIntegerField = BlzGetAbilityIntegerField
26
+ local getAbilityRealField = BlzGetAbilityRealField
27
+ local getAbilityBooleanField = BlzGetAbilityBooleanField
28
+ local getAbilityStringField = BlzGetAbilityStringField
29
+ local getAbilityIntegerLevelField = BlzGetAbilityIntegerLevelField
30
+ local getAbilityRealLevelField = BlzGetAbilityRealLevelField
31
+ local getAbilityBooleanLevelField = BlzGetAbilityBooleanLevelField
32
+ local getAbilityStringLevelField = BlzGetAbilityStringLevelField
33
+ local getUnitAbilityCooldownRemaining = BlzGetUnitAbilityCooldownRemaining
34
+ local startUnitAbilityCooldown = BlzStartUnitAbilityCooldown
35
+ local getHandleId = GetHandleId
36
+ local getItemAbility = BlzGetItemAbility
37
+ local match = string.match
38
+ local ____type = _G.type
39
+ local ____tostring = _G.tostring
40
+ local commonFields = compiletime(function()
41
+ local commonFields = {}
42
+ for ____, id in ipairs({
43
+ "anam",
44
+ "ansf",
45
+ "aher",
46
+ "aite",
47
+ "arac",
48
+ "abpx",
49
+ "abpy",
50
+ "aubx",
51
+ "auby",
52
+ "arpx",
53
+ "arpy",
54
+ "aart",
55
+ "auar",
56
+ "arar",
57
+ "acat",
58
+ "atat",
59
+ "asat",
60
+ "aeat",
61
+ "aaea",
62
+ "alig",
63
+ "amat",
64
+ "amsp",
65
+ "amac",
66
+ "amho",
67
+ "atac",
68
+ "ata0",
69
+ "ata1",
70
+ "ata2",
71
+ "ata3",
72
+ "ata4",
73
+ "ata5",
74
+ "acac",
75
+ "acap",
76
+ "aca1",
77
+ "aspt",
78
+ "aani",
79
+ "atp1",
80
+ "aut1",
81
+ "aub1",
82
+ "auu1",
83
+ "aret",
84
+ "arut",
85
+ "arhk",
86
+ "ahky",
87
+ "auhk",
88
+ "areq",
89
+ "arqa",
90
+ "achd",
91
+ "apri",
92
+ "aord",
93
+ "aoru",
94
+ "aoro",
95
+ "aorf",
96
+ "aefs",
97
+ "aefl",
98
+ "alev",
99
+ "arlv",
100
+ "alsk",
101
+ "atar",
102
+ "acas",
103
+ "adur",
104
+ "ahdu",
105
+ "acdn",
106
+ "amcs",
107
+ "aare",
108
+ "aran",
109
+ "abuf",
110
+ "aeff",
111
+ "ausk"
112
+ }) do
113
+ commonFields[fourCC(id)] = true
114
+ end
115
+ return commonFields
116
+ end)
117
+ local availableFields = postcompile(function()
118
+ local availableFields = {}
119
+ if currentMap then
120
+ for id, ability in pairs(currentMap.objects.ability.all) do
121
+ if ability.parentId then
122
+ availableFields[fourCC(id)] = fourCC(ability.parentId)
123
+ else
124
+ local fields = __TS__ArrayFilter(
125
+ __TS__ArrayMap(
126
+ ability.all,
127
+ function(____, id) return fourCC(id) end
128
+ ),
129
+ function(____, id) return not commonFields[id] end
130
+ )
131
+ if #fields ~= 0 then
132
+ local set = {}
133
+ for ____, field in ipairs(fields) do
134
+ set[field] = true
135
+ end
136
+ availableFields[fourCC(id)] = set
137
+ end
138
+ end
139
+ end
140
+ end
141
+ return availableFields
142
+ end)
143
+ local orders = postcompile(function()
144
+ local orders = {}
145
+ if currentMap then
146
+ for id, ability in pairs(currentMap.objects.ability.all) do
147
+ if not ability.parentId then
148
+ orders[fourCC(id)] = ability.aord
149
+ end
150
+ end
151
+ end
152
+ return orders
153
+ end)
154
+ local RealFields = __TS__Class()
155
+ RealFields.name = "RealFields"
156
+ function RealFields.prototype.____constructor(self, handle)
157
+ self.handle = handle
158
+ end
159
+ function RealFields.prototype.set(self, field, value)
160
+ return BlzSetAbilityRealField(self.handle, field, value)
161
+ end
162
+ function RealFields.prototype.get(self, field)
163
+ return BlzGetAbilityRealField(self.handle, field)
164
+ end
165
+ function RealFields.prototype.has(self, field)
166
+ local handle = self.handle
167
+ return BlzSetAbilityRealField(
168
+ handle,
169
+ field,
170
+ BlzGetAbilityRealField(handle, field)
171
+ )
172
+ end
173
+ local RealLevelFields = __TS__Class()
174
+ RealLevelFields.name = "RealLevelFields"
175
+ function RealLevelFields.prototype.____constructor(self, handle, level)
176
+ self.handle = handle
177
+ self.level = level
178
+ end
179
+ function RealLevelFields.prototype.set(self, field, value)
180
+ return BlzSetAbilityRealLevelField(self.handle, field, self.level, value)
181
+ end
182
+ function RealLevelFields.prototype.get(self, field)
183
+ return BlzGetAbilityRealLevelField(self.handle, field, self.level)
184
+ end
185
+ function RealLevelFields.prototype.has(self, field)
186
+ local handle = self.handle
187
+ return BlzSetAbilityRealLevelField(
188
+ handle,
189
+ field,
190
+ 0,
191
+ BlzGetAbilityRealLevelField(handle, field, 0)
192
+ )
193
+ end
194
+ local realLevelMetatable = {__index = self}
195
+ local levelDescriptors = {realFields = function(self, handle, level)
196
+ return __TS__New(RealLevelFields, handle, level)
197
+ end}
198
+ local levelMetatable = {__index = function(self, key)
199
+ local fields = levelDescriptors[key](levelDescriptors, self.handle, self.level)
200
+ rawset(self, key, fields)
201
+ return fields
202
+ end}
203
+ local fieldGetters = {
204
+ abilityintegerfield = function(ability, field)
205
+ return getAbilityIntegerField(ability.handle, field)
206
+ end,
207
+ abilityrealfield = function(ability, field)
208
+ return getAbilityRealField(ability.handle, field)
209
+ end,
210
+ abilitybooleanfield = function(ability, field)
211
+ return getAbilityBooleanField(ability.handle, field)
212
+ end,
213
+ abilitystringfield = function(ability, field)
214
+ return getAbilityStringField(ability.handle, field)
215
+ end,
216
+ abilityintegerlevelfield = function(ability, field, level)
217
+ return getAbilityIntegerLevelField(ability.handle, field, level or ability.level)
218
+ end,
219
+ abilityreallevelfield = function(ability, field, level)
220
+ return getAbilityRealLevelField(ability.handle, field, level or ability.level)
221
+ end,
222
+ abilitybooleanlevelfield = function(ability, field, level)
223
+ return getAbilityBooleanLevelField(ability.handle, field, level or ability.level)
224
+ end,
225
+ abilitystringlevelfield = function(ability, field, level)
226
+ return getAbilityStringLevelField(ability.handle, field, level or ability.level)
227
+ end
228
+ }
229
+ local fieldSetters = {
230
+ abilityintegerfield = function(ability, field, value)
231
+ return setAbilityIntegerField(ability.handle, field, value)
232
+ end,
233
+ abilityrealfield = function(ability, field, value)
234
+ return setAbilityRealField(ability.handle, field, value)
235
+ end,
236
+ abilitybooleanfield = function(ability, field, value)
237
+ return setAbilityBooleanField(ability.handle, field, value)
238
+ end,
239
+ abilitystringfield = function(ability, field, value)
240
+ return setAbilityStringField(ability.handle, field, value)
241
+ end,
242
+ abilityintegerlevelfield = function(ability, field, value, level)
243
+ return setAbilityIntegerLevelField(ability.handle, field, level or ability.level, value)
244
+ end,
245
+ abilityreallevelfield = function(ability, field, value, level)
246
+ return setAbilityRealLevelField(ability.handle, field, level or ability.level, value)
247
+ end,
248
+ abilitybooleanlevelfield = function(ability, field, value, level)
249
+ return setAbilityBooleanLevelField(ability.handle, field, level or ability.level, value)
250
+ end,
251
+ abilitystringlevelfield = function(ability, field, value, level)
252
+ return setAbilityStringLevelField(ability.handle, field, level or ability.level, value)
253
+ end
254
+ }
255
+ local levelRefreshFields = {
256
+ [fourCC("Isx1")] = true,
257
+ [fourCC("Idam")] = true,
258
+ [fourCC("Iob5")] = true,
259
+ [fourCC("Neg1")] = true
260
+ }
261
+ local levelsField = ABILITY_IF_LEVELS
262
+ local order2orderId = _G.OrderId
263
+ local orderIdFieldByParentTypeId = {
264
+ [fourCC("ANcl")] = ABILITY_SLF_BASE_ORDER_ID_NCL6,
265
+ [fourCC("Aspb")] = ABILITY_SLF_BASE_ORDER_ID_SPB5,
266
+ [fourCC("AAns")] = ABILITY_SLF_BASE_ORDER_ID_ANS5
267
+ }
268
+ ____exports.AbilitySnapshot = __TS__Class()
269
+ local AbilitySnapshot = ____exports.AbilitySnapshot
270
+ AbilitySnapshot.name = "AbilitySnapshot"
271
+ function AbilitySnapshot.prototype.____constructor(self)
272
+ end
273
+ ---
274
+ -- @internal For use by internal systems only.
275
+ ____exports.getOrderIdByAbilityTypeId = function(abilityTypeId)
276
+ local parentTypeId = availableFields[abilityTypeId]
277
+ return order2orderId(orders[____type(parentTypeId) == "number" and parentTypeId or abilityTypeId] or "")
278
+ end
279
+ ____exports.Ability = __TS__Class()
280
+ local Ability = ____exports.Ability
281
+ Ability.name = "Ability"
282
+ __TS__ClassExtends(Ability, Handle)
283
+ function Ability.prototype.____constructor(self, handle, typeId)
284
+ Handle.prototype.____constructor(self, handle)
285
+ self.typeId = typeId
286
+ end
287
+ function Ability.prototype.__tostring(self)
288
+ return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
289
+ end
290
+ function Ability.prototype.getSnapshot(self)
291
+ return nil
292
+ end
293
+ function Ability.prototype.hasField(self, field)
294
+ field = ____type(field) == "number" and field or getHandleId(field)
295
+ if commonFields[field] then
296
+ return true
297
+ end
298
+ local id = availableFields[self.typeId]
299
+ if ____type(id) == "number" then
300
+ id = availableFields[id]
301
+ end
302
+ return not not (id and id[field])
303
+ end
304
+ function Ability.prototype.getField(self, field, level)
305
+ local fieldType = match(
306
+ ____tostring(field),
307
+ "^(.-):"
308
+ )
309
+ return fieldGetters[fieldType](self, field, level)
310
+ end
311
+ function Ability.prototype.setField(self, field, levelOrValue, value)
312
+ local fieldType = match(
313
+ ____tostring(field),
314
+ "^(.-):"
315
+ )
316
+ local ____temp_0
317
+ if value ~= nil then
318
+ ____temp_0 = fieldSetters[fieldType](self, field, value, levelOrValue)
319
+ else
320
+ ____temp_0 = fieldSetters[fieldType](self, field, levelOrValue)
321
+ end
322
+ local success = ____temp_0
323
+ if levelRefreshFields[getHandleId(field)] and success and __TS__InstanceOf(self, ____exports.UnitAbility) then
324
+ local unit = self.owner.handle
325
+ local ability = self.handle
326
+ local typeId = self.typeId
327
+ local levels = getAbilityIntegerField(ability, levelsField)
328
+ setAbilityIntegerField(ability, levelsField, levels + 1)
329
+ local level = getUnitAbilityLevel(unit, typeId)
330
+ setUnitAbilityLevel(unit, typeId, levels + 1)
331
+ setUnitAbilityLevel(unit, typeId, level)
332
+ setAbilityIntegerField(ability, levelsField, levels)
333
+ end
334
+ return success
335
+ end
336
+ __TS__SetDescriptor(
337
+ Ability.prototype,
338
+ "parentTypeId",
339
+ {get = function(self)
340
+ local parentTypeId = availableFields[self.typeId]
341
+ parentTypeId = ____type(parentTypeId) == "number" and parentTypeId or self.typeId
342
+ rawset(self, "parentTypeId", parentTypeId)
343
+ return parentTypeId
344
+ end},
345
+ true
346
+ )
347
+ __TS__SetDescriptor(
348
+ Ability.prototype,
349
+ "orderId",
350
+ {get = function(self)
351
+ local field = orderIdFieldByParentTypeId[self.parentTypeId]
352
+ return order2orderId(field ~= nil and getAbilityStringLevelField(self.handle, ABILITY_SLF_BASE_ORDER_ID_NCL6, self.level) or (orders[self.parentTypeId] or ""))
353
+ end},
354
+ true
355
+ )
356
+ __TS__SetDescriptor(
357
+ Ability.prototype,
358
+ "realFields",
359
+ {get = function(self)
360
+ local realFields = __TS__New(RealFields, self.handle)
361
+ rawset(self, "realFields", realFields)
362
+ return realFields
363
+ end},
364
+ true
365
+ )
366
+ __TS__SetDescriptor(
367
+ Ability.prototype,
368
+ "levels",
369
+ {get = function(self)
370
+ local handle = self.handle
371
+ local levels = setmetatable(
372
+ {},
373
+ {
374
+ __len = function(self)
375
+ return BlzGetAbilityIntegerField(handle, ABILITY_IF_LEVELS)
376
+ end,
377
+ __index = function(self, i)
378
+ local level = setmetatable({handle = handle, level = i - 1}, levelMetatable)
379
+ self[i] = level
380
+ return level
381
+ end
382
+ }
383
+ )
384
+ rawset(self, "levels", levels)
385
+ return levels
386
+ end},
387
+ true
388
+ )
389
+ __TS__SetDescriptor(
390
+ Ability.prototype,
391
+ "level",
392
+ {get = function(self)
393
+ end},
394
+ true
395
+ )
396
+ __TS__ObjectDefineProperty(
397
+ Ability,
398
+ "onCreate",
399
+ {get = function(self)
400
+ return self.onCreateEvent
401
+ end}
402
+ )
403
+ __TS__ObjectDefineProperty(
404
+ Ability,
405
+ "destroyEvent",
406
+ {get = function(self)
407
+ return self.onDestroyEvent
408
+ end}
409
+ )
410
+ --- Can happen in extreme edge cases such as removing an ability from a unit during a chain of ability events.
411
+ ____exports.UnrecognizedAbility = __TS__Class()
412
+ local UnrecognizedAbility = ____exports.UnrecognizedAbility
413
+ UnrecognizedAbility.name = "UnrecognizedAbility"
414
+ __TS__ClassExtends(UnrecognizedAbility, ____exports.Ability)
415
+ function UnrecognizedAbility.prototype.____constructor(self, typeId, owner)
416
+ UnrecognizedAbility.____super.prototype.____constructor(self, nil, typeId)
417
+ self.owner = owner
418
+ end
419
+ __TS__SetDescriptor(
420
+ UnrecognizedAbility.prototype,
421
+ "level",
422
+ {get = function(self)
423
+ return 0
424
+ end},
425
+ true
426
+ )
427
+ ____exports.UnitAbility = __TS__Class()
428
+ local UnitAbility = ____exports.UnitAbility
429
+ UnitAbility.name = "UnitAbility"
430
+ __TS__ClassExtends(UnitAbility, ____exports.Ability)
431
+ function UnitAbility.prototype.____constructor(self, handle, typeId, owner)
432
+ UnitAbility.____super.prototype.____constructor(self, handle, typeId)
433
+ self.owner = owner
434
+ self.u = owner.handle
435
+ end
436
+ __TS__SetDescriptor(
437
+ UnitAbility.prototype,
438
+ "level",
439
+ {
440
+ get = function(self)
441
+ return getUnitAbilityLevel(self.u, self.typeId) - 1
442
+ end,
443
+ set = function(self, v)
444
+ setUnitAbilityLevel(self.u, self.typeId, v + 1)
445
+ end
446
+ },
447
+ true
448
+ )
449
+ __TS__SetDescriptor(
450
+ UnitAbility.prototype,
451
+ "cooldownRemaining",
452
+ {
453
+ get = function(self)
454
+ return getUnitAbilityCooldownRemaining(self.u, self.typeId)
455
+ end,
456
+ set = function(self, v)
457
+ startUnitAbilityCooldown(self.u, self.typeId, v)
458
+ end
459
+ },
460
+ true
461
+ )
462
+ __TS__ObjectDefineProperty(
463
+ UnitAbility,
464
+ "onCreate",
465
+ {get = function(self)
466
+ return self.onCreateEvent
467
+ end}
468
+ )
469
+ __TS__ObjectDefineProperty(
470
+ UnitAbility,
471
+ "onDestroy",
472
+ {get = function(self)
473
+ return self.onDestroyEvent
474
+ end}
475
+ )
476
+ local function getAbilityField(_, ability, field, level)
477
+ return ____exports.Ability.prototype.getField(ability, field, level)
478
+ end
479
+ local function setAbilityField(_, ability, field, levelOrValue, value)
480
+ return ____exports.Ability.prototype.setField(ability, field, levelOrValue, value)
481
+ end
482
+ ____exports.ItemAbility = __TS__Class()
483
+ local ItemAbility = ____exports.ItemAbility
484
+ ItemAbility.name = "ItemAbility"
485
+ __TS__ClassExtends(ItemAbility, ____exports.Ability)
486
+ function ItemAbility.prototype.____constructor(self, handle, typeId, owner)
487
+ ItemAbility.____super.prototype.____constructor(self, handle, typeId)
488
+ self.owner = owner
489
+ end
490
+ function ItemAbility.prototype.getField(self, field, level)
491
+ return doAbilityAction(
492
+ self.owner.handle,
493
+ getAbilityField,
494
+ self,
495
+ field,
496
+ level
497
+ )
498
+ end
499
+ function ItemAbility.prototype.setField(self, field, levelOrValue, value)
500
+ return doAbilityAction(
501
+ self.owner.handle,
502
+ setAbilityField,
503
+ self,
504
+ field,
505
+ levelOrValue,
506
+ value
507
+ )
508
+ end
509
+ __TS__SetDescriptor(
510
+ ItemAbility.prototype,
511
+ "level",
512
+ {get = function(self)
513
+ return 0
514
+ end},
515
+ true
516
+ )
517
+ __TS__ObjectDefineProperty(
518
+ ItemAbility,
519
+ "onCreate",
520
+ {get = function(self)
521
+ return self.onCreateEvent
522
+ end}
523
+ )
524
+ __TS__ObjectDefineProperty(
525
+ ItemAbility,
526
+ "onDestroy",
527
+ {get = function(self)
528
+ return self.onDestroyEvent
529
+ end}
530
+ )
531
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,48 @@
1
+ local ____exports = {}
2
+ local ____player = require("core.types.player")
3
+ local Player = ____player.Player
4
+ local ____dummy = require("objutil.dummy")
5
+ local dummyUnitId = ____dummy.dummyUnitId
6
+ local isItemOwned = IsItemOwned
7
+ local isItemPowerup = IsItemPowerup
8
+ local getItemX = GetItemX
9
+ local getItemY = GetItemY
10
+ local setItemBooleanField = BlzSetItemBooleanField
11
+ local setItemPosition = SetItemPosition
12
+ local unitAddItem = UnitAddItem
13
+ local unitRemoveItem = UnitRemoveItem
14
+ local dummy = assert(CreateUnit(
15
+ Player.neutralVictim.handle,
16
+ dummyUnitId,
17
+ 0,
18
+ 0,
19
+ 270
20
+ ))
21
+ ShowUnit(dummy, false)
22
+ ---
23
+ -- @internal For use by internal systems only.
24
+ ____exports.doAbilityAction = function(handle, action, ...)
25
+ local isOwned = isItemOwned(handle)
26
+ local isPowerup
27
+ local x
28
+ local y
29
+ if not isOwned then
30
+ if isItemPowerup(handle) then
31
+ setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, false)
32
+ isPowerup = true
33
+ end
34
+ x = getItemX(handle)
35
+ y = getItemY(handle)
36
+ unitAddItem(dummy, handle)
37
+ end
38
+ local result = action(handle, ...)
39
+ if not isOwned then
40
+ unitRemoveItem(dummy, handle)
41
+ setItemPosition(handle, x, y)
42
+ if isPowerup then
43
+ setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, true)
44
+ end
45
+ end
46
+ return result
47
+ end
48
+ return ____exports