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,369 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
3
+ local ____exports = {}
4
+ local ____ability = require("engine.internal.ability")
5
+ local ItemAbility = ____ability.ItemAbility
6
+ local UnitAbility = ____ability.UnitAbility
7
+ local UnrecognizedAbility = ____ability.UnrecognizedAbility
8
+ local ____destructable = require("core.types.destructable")
9
+ local Destructable = ____destructable.Destructable
10
+ local ____item = require("engine.internal.item")
11
+ local Item = ____item.Item
12
+ local ____unit = require("engine.internal.unit")
13
+ local Unit = ____unit.Unit
14
+ local UnitTriggerEvent = ____unit.UnitTriggerEvent
15
+ local ____event = require("event")
16
+ local createDispatchingEvent = ____event.createDispatchingEvent
17
+ local DependentInitializingEvent = ____event.DependentInitializingEvent
18
+ local ____preconditions = require("utility.preconditions")
19
+ local checkNotNull = ____preconditions.checkNotNull
20
+ local getItemAbility = BlzGetItemAbility
21
+ local getSpellAbility = GetSpellAbility
22
+ local getSpellAbilityId = GetSpellAbilityId
23
+ local getSpellTargetDestructible = GetSpellTargetDestructable
24
+ local getSpellTargetItem = GetSpellTargetItem
25
+ local getSpellTargetUnit = GetSpellTargetUnit
26
+ local getSpellTargetX = GetSpellTargetX
27
+ local getSpellTargetY = GetSpellTargetY
28
+ local getTriggerUnit = GetTriggerUnit
29
+ local getUnitAbility = BlzGetUnitAbility
30
+ local unitAddAbility = UnitAddAbility
31
+ local unitInventorySize = UnitInventorySize
32
+ local unitItemInSlot = UnitItemInSlot
33
+ local unitRemoveAbility = UnitRemoveAbility
34
+ local function retrieveAbility(unit, ability, abilityId)
35
+ if ability == nil then
36
+ return __TS__New(
37
+ UnrecognizedAbility,
38
+ abilityId,
39
+ Unit:of(unit)
40
+ )
41
+ end
42
+ if not unitAddAbility(unit, abilityId) then
43
+ if getUnitAbility(unit, abilityId) == ability then
44
+ return UnitAbility:of(
45
+ ability,
46
+ abilityId,
47
+ Unit:of(unit)
48
+ )
49
+ end
50
+ else
51
+ unitRemoveAbility(unit, abilityId)
52
+ end
53
+ for i = 0, unitInventorySize(unit) - 1 do
54
+ local item = unitItemInSlot(unit, i)
55
+ if getItemAbility(item, abilityId) == ability then
56
+ return ItemAbility:of(
57
+ ability,
58
+ abilityId,
59
+ Item:of(item)
60
+ )
61
+ end
62
+ end
63
+ return UnitAbility:of(
64
+ ability,
65
+ abilityId,
66
+ Unit:of(unit)
67
+ )
68
+ end
69
+ local function collectInternalUnitAbilityEventParameters()
70
+ local unit = checkNotNull(getTriggerUnit())
71
+ return Unit:of(unit), retrieveAbility(
72
+ unit,
73
+ getSpellAbility(),
74
+ getSpellAbilityId()
75
+ ), getSpellTargetUnit(), getSpellTargetItem(), getSpellTargetDestructible(), getSpellTargetX(), getSpellTargetY()
76
+ end
77
+ local function collectUnitAbilityEventParameters()
78
+ local unit = checkNotNull(getTriggerUnit())
79
+ return Unit:of(unit), retrieveAbility(
80
+ unit,
81
+ getSpellAbility(),
82
+ getSpellAbilityId()
83
+ )
84
+ end
85
+ local function createCommonEvent(underlyingEvent)
86
+ return __TS__New(
87
+ DependentInitializingEvent,
88
+ underlyingEvent,
89
+ 3,
90
+ function(caster, ability)
91
+ return true, caster, ability
92
+ end
93
+ )
94
+ end
95
+ local function createWidgetTargetEvent(underlyingEvent)
96
+ return __TS__New(
97
+ DependentInitializingEvent,
98
+ underlyingEvent,
99
+ 2,
100
+ function(caster, ability, targetUnit, targetItem, targetDestructible)
101
+ if targetUnit ~= nil or targetItem ~= nil or targetDestructible ~= nil then
102
+ return true, caster, ability, Unit:of(targetUnit) or Item:of(targetItem) or Destructable:of(targetDestructible)
103
+ else
104
+ return false
105
+ end
106
+ end
107
+ )
108
+ end
109
+ local function createUnitTargetEvent(underlyingEvent)
110
+ return __TS__New(
111
+ DependentInitializingEvent,
112
+ underlyingEvent,
113
+ 1,
114
+ function(caster, ability, targetUnit)
115
+ if targetUnit ~= nil then
116
+ return true, caster, ability, Unit:of(targetUnit)
117
+ else
118
+ return false
119
+ end
120
+ end
121
+ )
122
+ end
123
+ local function createItemTargetEvent(underlyingEvent)
124
+ return __TS__New(
125
+ DependentInitializingEvent,
126
+ underlyingEvent,
127
+ 1,
128
+ function(caster, ability, targetUnit, targetItem)
129
+ if targetItem ~= nil then
130
+ return true, caster, ability, Item:of(targetItem)
131
+ else
132
+ return false
133
+ end
134
+ end
135
+ )
136
+ end
137
+ local function createDestructibleTargetEvent(underlyingEvent)
138
+ return __TS__New(
139
+ DependentInitializingEvent,
140
+ underlyingEvent,
141
+ 1,
142
+ function(caster, ability, targetUnit, targetItem, targetDestructible)
143
+ if targetDestructible ~= nil then
144
+ return true, caster, ability, Destructable:of(targetDestructible)
145
+ else
146
+ return false
147
+ end
148
+ end
149
+ )
150
+ end
151
+ local function createPointTargetEvent(underlyingEvent)
152
+ return __TS__New(
153
+ DependentInitializingEvent,
154
+ underlyingEvent,
155
+ 1,
156
+ function(caster, ability, targetUnit, targetItem, targetDestructible, x, y)
157
+ if x ~= 0 and y ~= 0 and targetUnit == nil and targetItem == nil and targetDestructible == nil then
158
+ return true, caster, ability, x, y
159
+ else
160
+ return false
161
+ end
162
+ end
163
+ )
164
+ end
165
+ local function createNoTargetEvent(underlyingEvent)
166
+ return __TS__New(
167
+ DependentInitializingEvent,
168
+ underlyingEvent,
169
+ 1,
170
+ function(caster, ability, targetUnit, targetItem, targetDestructible, x, y)
171
+ if x == 0 and y == 0 and targetUnit == nil and targetItem == nil and targetDestructible == nil then
172
+ return true, caster, ability
173
+ else
174
+ return false
175
+ end
176
+ end
177
+ )
178
+ end
179
+ local function extractAbilityTypeId(unit, ability)
180
+ return ability.typeId
181
+ end
182
+ local internalAbilityCastingStartEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_CHANNEL, collectInternalUnitAbilityEventParameters)
183
+ rawset(
184
+ Unit,
185
+ "abilityCastingStartEvent",
186
+ createDispatchingEvent(
187
+ createCommonEvent(internalAbilityCastingStartEvent),
188
+ extractAbilityTypeId
189
+ )
190
+ )
191
+ rawset(
192
+ Unit,
193
+ "abilityWidgetTargetCastingStartEvent",
194
+ createDispatchingEvent(
195
+ createWidgetTargetEvent(internalAbilityCastingStartEvent),
196
+ extractAbilityTypeId
197
+ )
198
+ )
199
+ rawset(
200
+ Unit,
201
+ "abilityUnitTargetCastingStartEvent",
202
+ createDispatchingEvent(
203
+ createUnitTargetEvent(internalAbilityCastingStartEvent),
204
+ extractAbilityTypeId
205
+ )
206
+ )
207
+ rawset(
208
+ Unit,
209
+ "abilityItemTargetCastingStartEvent",
210
+ createDispatchingEvent(
211
+ createItemTargetEvent(internalAbilityCastingStartEvent),
212
+ extractAbilityTypeId
213
+ )
214
+ )
215
+ rawset(
216
+ Unit,
217
+ "abilityDestructibleTargetCastingStartEvent",
218
+ createDispatchingEvent(
219
+ createDestructibleTargetEvent(internalAbilityCastingStartEvent),
220
+ extractAbilityTypeId
221
+ )
222
+ )
223
+ rawset(
224
+ Unit,
225
+ "abilityPointTargetCastingStartEvent",
226
+ createDispatchingEvent(
227
+ createPointTargetEvent(internalAbilityCastingStartEvent),
228
+ extractAbilityTypeId
229
+ )
230
+ )
231
+ rawset(
232
+ Unit,
233
+ "abilityNoTargetCastingStartEvent",
234
+ createDispatchingEvent(
235
+ createNoTargetEvent(internalAbilityCastingStartEvent),
236
+ extractAbilityTypeId
237
+ )
238
+ )
239
+ local internalAbilityCastingFinishEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_CAST, collectInternalUnitAbilityEventParameters)
240
+ rawset(
241
+ Unit,
242
+ "abilityCastingFinishEvent",
243
+ createDispatchingEvent(
244
+ createCommonEvent(internalAbilityCastingFinishEvent),
245
+ extractAbilityTypeId
246
+ )
247
+ )
248
+ rawset(
249
+ Unit,
250
+ "abilityWidgetTargetCastingFinishEvent",
251
+ createDispatchingEvent(
252
+ createWidgetTargetEvent(internalAbilityCastingFinishEvent),
253
+ extractAbilityTypeId
254
+ )
255
+ )
256
+ rawset(
257
+ Unit,
258
+ "abilityUnitTargetCastingFinishEvent",
259
+ createDispatchingEvent(
260
+ createUnitTargetEvent(internalAbilityCastingFinishEvent),
261
+ extractAbilityTypeId
262
+ )
263
+ )
264
+ rawset(
265
+ Unit,
266
+ "abilityItemTargetCastingFinishEvent",
267
+ createDispatchingEvent(
268
+ createItemTargetEvent(internalAbilityCastingFinishEvent),
269
+ extractAbilityTypeId
270
+ )
271
+ )
272
+ rawset(
273
+ Unit,
274
+ "abilityDestructibleTargetCastingFinishEvent",
275
+ createDispatchingEvent(
276
+ createDestructibleTargetEvent(internalAbilityCastingFinishEvent),
277
+ extractAbilityTypeId
278
+ )
279
+ )
280
+ rawset(
281
+ Unit,
282
+ "abilityPointTargetCastingFinishEvent",
283
+ createDispatchingEvent(
284
+ createPointTargetEvent(internalAbilityCastingFinishEvent),
285
+ extractAbilityTypeId
286
+ )
287
+ )
288
+ rawset(
289
+ Unit,
290
+ "abilityNoTargetCastingFinishEvent",
291
+ createDispatchingEvent(
292
+ createNoTargetEvent(internalAbilityCastingFinishEvent),
293
+ extractAbilityTypeId
294
+ )
295
+ )
296
+ local internalAbilityChannelingStartEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_EFFECT, collectInternalUnitAbilityEventParameters)
297
+ rawset(
298
+ Unit,
299
+ "abilityChannelingStartEvent",
300
+ createDispatchingEvent(
301
+ createCommonEvent(internalAbilityChannelingStartEvent),
302
+ extractAbilityTypeId
303
+ )
304
+ )
305
+ rawset(
306
+ Unit,
307
+ "abilityWidgetTargetChannelingStartEvent",
308
+ createDispatchingEvent(
309
+ createWidgetTargetEvent(internalAbilityChannelingStartEvent),
310
+ extractAbilityTypeId
311
+ )
312
+ )
313
+ rawset(
314
+ Unit,
315
+ "abilityUnitTargetChannelingStartEvent",
316
+ createDispatchingEvent(
317
+ createUnitTargetEvent(internalAbilityChannelingStartEvent),
318
+ extractAbilityTypeId
319
+ )
320
+ )
321
+ rawset(
322
+ Unit,
323
+ "abilityItemTargetChannelingStartEvent",
324
+ createDispatchingEvent(
325
+ createItemTargetEvent(internalAbilityChannelingStartEvent),
326
+ extractAbilityTypeId
327
+ )
328
+ )
329
+ rawset(
330
+ Unit,
331
+ "abilityDestructibleTargetChannelingStartEvent",
332
+ createDispatchingEvent(
333
+ createDestructibleTargetEvent(internalAbilityChannelingStartEvent),
334
+ extractAbilityTypeId
335
+ )
336
+ )
337
+ rawset(
338
+ Unit,
339
+ "abilityPointTargetChannelingStartEvent",
340
+ createDispatchingEvent(
341
+ createPointTargetEvent(internalAbilityChannelingStartEvent),
342
+ extractAbilityTypeId
343
+ )
344
+ )
345
+ rawset(
346
+ Unit,
347
+ "abilityNoTargetChannelingStartEvent",
348
+ createDispatchingEvent(
349
+ createNoTargetEvent(internalAbilityChannelingStartEvent),
350
+ extractAbilityTypeId
351
+ )
352
+ )
353
+ rawset(
354
+ Unit,
355
+ "abilityChannelingFinishEvent",
356
+ createDispatchingEvent(
357
+ __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_FINISH, collectUnitAbilityEventParameters),
358
+ extractAbilityTypeId
359
+ )
360
+ )
361
+ rawset(
362
+ Unit,
363
+ "abilityStopEvent",
364
+ createDispatchingEvent(
365
+ __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_ENDCAST, collectUnitAbilityEventParameters),
366
+ extractAbilityTypeId
367
+ )
368
+ )
369
+ return ____exports
@@ -0,0 +1,17 @@
1
+ /** @noSelfInFile */
2
+ import { CombatClassifications } from "../../object-data/auxiliary/combat-classification";
3
+ declare module "../unit" {
4
+ interface Unit {
5
+ isAllowedTarget(this: Unit, source: Unit, allowedTargetCombatClassifications: CombatClassifications): boolean;
6
+ }
7
+ }
8
+ declare module "../unit" {
9
+ namespace Unit {
10
+ function getAllowedTargetsInRange(this: void, source: Unit, allowedTargetCombatClassifications: CombatClassifications, x: number, y: number, range: number): Unit[];
11
+ }
12
+ }
13
+ declare module "../unit" {
14
+ namespace Unit {
15
+ function getAllowedTargetsInCollisionRange(this: void, source: Unit, allowedTargetCombatClassifications: CombatClassifications, x: number, y: number, range: number): Unit[];
16
+ }
17
+ }
@@ -0,0 +1,19 @@
1
+ local ____exports = {}
2
+ local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
3
+ local filterTarget = ____combat_2Dclassification.filterTarget
4
+ local initializeFilterTargetState = ____combat_2Dclassification.initializeFilterTargetState
5
+ local ____unit = require("engine.internal.unit")
6
+ local Unit = ____unit.Unit
7
+ Unit.prototype.isAllowedTarget = function(self, source, allowedTargetCombatClassifications)
8
+ initializeFilterTargetState(source, allowedTargetCombatClassifications)
9
+ return filterTarget(self)
10
+ end
11
+ Unit.getAllowedTargetsInRange = function(source, allowedTargetCombatClassifications, x, y, range)
12
+ initializeFilterTargetState(source, allowedTargetCombatClassifications)
13
+ return Unit:getInRange(x, y, range, filterTarget)
14
+ end
15
+ Unit.getAllowedTargetsInCollisionRange = function(source, allowedTargetCombatClassifications, x, y, range)
16
+ initializeFilterTargetState(source, allowedTargetCombatClassifications)
17
+ return Unit:getInCollisionRange(x, y, range, filterTarget)
18
+ end
19
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ import "../../unit+ability";
@@ -0,0 +1,21 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.internal.unit")
3
+ local Unit = ____unit.Unit
4
+ local UnitClassification = ____unit.UnitClassification
5
+ require("engine.internal.unit+ability")
6
+ local ____lua_2Dsets = require("utility.lua-sets")
7
+ local luaSetOf = ____lua_2Dsets.luaSetOf
8
+ local cannibalizeAbilityTypeIds = luaSetOf(
9
+ fourCC("Acan"),
10
+ fourCC("Acn2"),
11
+ fourCC("ACcn")
12
+ )
13
+ Unit.abilityUnitTargetChannelingStartEvent:addListener(
14
+ 4,
15
+ function(caster, ability, target)
16
+ if cannibalizeAbilityTypeIds[ability.parentTypeId] ~= nil then
17
+ target:removeClassification(UnitClassification.TAUREN)
18
+ end
19
+ end
20
+ )
21
+ return ____exports
@@ -0,0 +1,41 @@
1
+ /// <reference types="@typescript-to-lua/language-extensions" />
2
+ /** @noSelfInFile */
3
+ import { Unit } from "../unit";
4
+ import { AbilityTypeId } from "../../object-data/entry/ability-type";
5
+ export type UnitBonusId<Brand extends string = any> = number & {
6
+ readonly __unitBonusId: unique symbol;
7
+ readonly __unitBonusIdBrand: Brand;
8
+ };
9
+ export type UnitArmorBonusId = UnitBonusId<"armor">;
10
+ export type UnitAttackSpeedFactorBonusId = UnitBonusId<"attackSpeedFactor">;
11
+ export type UnitMovementSpeedFactorBonusId = UnitBonusId<"movementSpeedFactor">;
12
+ export type UnitDamageBonusId = UnitBonusId<"damage">;
13
+ export type UnitReceivedDamageFactorBonusId = UnitBonusId<"receivedDamageFactor">;
14
+ export type UnitBonusType<Id extends UnitBonusId = UnitBonusId> = ({
15
+ abilityTypeId: AbilityTypeId;
16
+ field: jabilityintegerlevelfield;
17
+ integer: true;
18
+ } | {
19
+ abilityTypeId: AbilityTypeId;
20
+ field: jabilityreallevelfield;
21
+ integer: false;
22
+ } | {
23
+ abilityTypeId?: undefined;
24
+ valueByUnit: LuaMap<Unit, number>;
25
+ }) & {
26
+ reduce: (this: void, array: number[]) => number;
27
+ initialValue: number;
28
+ readonly __unitBonusTypeId?: Id;
29
+ };
30
+ export declare namespace UnitBonusType {
31
+ const ARMOR: UnitBonusType<UnitArmorBonusId>;
32
+ const ATTACK_SPEED_FACTOR: UnitBonusType<UnitAttackSpeedFactorBonusId>;
33
+ const MOVEMENT_SPEED_FACTOR: UnitBonusType<UnitAttackSpeedFactorBonusId>;
34
+ const DAMAGE: UnitBonusType<UnitDamageBonusId>;
35
+ const RECEIVED_DAMAGE_FACTOR: UnitBonusType<UnitReceivedDamageFactorBonusId>;
36
+ }
37
+ export declare const addUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, value: number) => Id;
38
+ export declare const removeUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => boolean;
39
+ export declare const updateUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id, value: number) => boolean;
40
+ export declare const addOrUpdateOrRemoveUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id | undefined, value: number) => Id | undefined;
41
+ export declare const getUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => number;
@@ -0,0 +1,188 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.internal.unit")
3
+ local Unit = ____unit.Unit
4
+ local ____armor_2Dincrease = require("engine.internal.object-data.armor-increase")
5
+ local ARMOR_BONUS_DUMMY_ABILITY_FIELD = ____armor_2Dincrease.ARMOR_BONUS_DUMMY_ABILITY_FIELD
6
+ local ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID = ____armor_2Dincrease.ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID
7
+ local ____utility = require("engine.internal.utility")
8
+ local addInternalAbility = ____utility.addInternalAbility
9
+ local ____arrays = require("utility.arrays")
10
+ local product = ____arrays.product
11
+ local sum = ____arrays.sum
12
+ local ____auto_2Dattack_2Dspeed_2Dincrease = require("engine.internal.object-data.auto-attack-speed-increase")
13
+ local AUTO_ATTACK_SPEED_INCREASE_DUMMY_ABILITY_TYPE_ID = ____auto_2Dattack_2Dspeed_2Dincrease.AUTO_ATTACK_SPEED_INCREASE_DUMMY_ABILITY_TYPE_ID
14
+ local AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD = ____auto_2Dattack_2Dspeed_2Dincrease.AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD
15
+ local ____preconditions = require("utility.preconditions")
16
+ local check = ____preconditions.check
17
+ local checkNotNull = ____preconditions.checkNotNull
18
+ local ____auto_2Dattack_2Ddamage_2Dincrease = require("engine.internal.object-data.auto-attack-damage-increase")
19
+ local AUTO_ATTACK_DAMAGE_INCREASE_ABILITY_FIELD = ____auto_2Dattack_2Ddamage_2Dincrease.AUTO_ATTACK_DAMAGE_INCREASE_ABILITY_FIELD
20
+ local AUTO_ATTACK_DAMAGE_INCREASE_DUMMY_ABILITY_TYPE_ID = ____auto_2Dattack_2Ddamage_2Dincrease.AUTO_ATTACK_DAMAGE_INCREASE_DUMMY_ABILITY_TYPE_ID
21
+ local ____movement_2Dspeed_2Dincrease_2Dfactor = require("engine.internal.object-data.movement-speed-increase-factor")
22
+ local MOVEMENT_SPEED_INCREASE_FACTOR_ABILITY_FIELD = ____movement_2Dspeed_2Dincrease_2Dfactor.MOVEMENT_SPEED_INCREASE_FACTOR_ABILITY_FIELD
23
+ local MOVEMENT_SPEED_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID = ____movement_2Dspeed_2Dincrease_2Dfactor.MOVEMENT_SPEED_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID
24
+ local receivedDamageFactorByUnit = {}
25
+ ____exports.UnitBonusType = {}
26
+ local UnitBonusType = ____exports.UnitBonusType
27
+ do
28
+ UnitBonusType.ARMOR = {
29
+ abilityTypeId = ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID,
30
+ field = ARMOR_BONUS_DUMMY_ABILITY_FIELD,
31
+ integer = false,
32
+ reduce = sum,
33
+ initialValue = 0
34
+ }
35
+ UnitBonusType.ATTACK_SPEED_FACTOR = {
36
+ abilityTypeId = AUTO_ATTACK_SPEED_INCREASE_DUMMY_ABILITY_TYPE_ID,
37
+ field = AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD,
38
+ integer = false,
39
+ reduce = sum,
40
+ initialValue = 0
41
+ }
42
+ UnitBonusType.MOVEMENT_SPEED_FACTOR = {
43
+ abilityTypeId = MOVEMENT_SPEED_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID,
44
+ field = MOVEMENT_SPEED_INCREASE_FACTOR_ABILITY_FIELD,
45
+ integer = false,
46
+ reduce = sum,
47
+ initialValue = 0
48
+ }
49
+ UnitBonusType.DAMAGE = {
50
+ abilityTypeId = AUTO_ATTACK_DAMAGE_INCREASE_DUMMY_ABILITY_TYPE_ID,
51
+ field = AUTO_ATTACK_DAMAGE_INCREASE_ABILITY_FIELD,
52
+ integer = false,
53
+ reduce = sum,
54
+ initialValue = 0
55
+ }
56
+ UnitBonusType.RECEIVED_DAMAGE_FACTOR = {reduce = product, valueByUnit = receivedDamageFactorByUnit, initialValue = 1}
57
+ end
58
+ local bonusesByUnitByBonusType = {}
59
+ local nextId = 1
60
+ local function processUnitBonus(unit, bonusType, bonusesArray)
61
+ local unitHandle = unit.handle
62
+ local totalValue = bonusType.reduce(bonusesArray)
63
+ local abilityTypeId = bonusType.abilityTypeId
64
+ if abilityTypeId == nil then
65
+ local valueByUnit = bonusType.valueByUnit
66
+ if totalValue == bonusType.initialValue then
67
+ valueByUnit[unit] = nil
68
+ else
69
+ valueByUnit[unit] = totalValue
70
+ end
71
+ return
72
+ end
73
+ if totalValue == bonusType.initialValue then
74
+ UnitRemoveAbility(unitHandle, abilityTypeId)
75
+ return
76
+ end
77
+ local abilityHandle = checkNotNull(addInternalAbility(unitHandle, abilityTypeId))
78
+ check((bonusType.integer and BlzSetAbilityIntegerLevelField or BlzSetAbilityRealLevelField)(abilityHandle, bonusType.field, 0, totalValue))
79
+ BlzSetAbilityIntegerField(abilityHandle, ABILITY_IF_LEVELS, 2)
80
+ SetUnitAbilityLevel(unitHandle, abilityTypeId, 2)
81
+ SetUnitAbilityLevel(unitHandle, abilityTypeId, 1)
82
+ BlzSetAbilityIntegerField(abilityHandle, ABILITY_IF_LEVELS, 1)
83
+ end
84
+ ____exports.addUnitBonus = function(unit, bonusType, value)
85
+ local bonusesByUnit = bonusesByUnitByBonusType[bonusType]
86
+ if bonusesByUnit == nil then
87
+ bonusesByUnit = setmetatable({}, {__mode = "k"})
88
+ bonusesByUnitByBonusType[bonusType] = bonusesByUnit
89
+ end
90
+ local bonuses = bonusesByUnit[unit]
91
+ if bonuses == nil then
92
+ bonuses = {array = {}, idByIndex = {}, indexById = {}}
93
+ bonusesByUnit[unit] = bonuses
94
+ end
95
+ local bonusesArray = bonuses.array
96
+ local ____nextId_0 = nextId
97
+ nextId = ____nextId_0 + 1
98
+ local id = ____nextId_0
99
+ local index = #bonusesArray
100
+ bonusesArray[index + 1] = value
101
+ bonuses.idByIndex[index] = id
102
+ bonuses.indexById[id] = index
103
+ processUnitBonus(unit, bonusType, bonusesArray)
104
+ return id
105
+ end
106
+ ____exports.removeUnitBonus = function(unit, bonusType, id)
107
+ local bonusesByUnit = bonusesByUnitByBonusType[bonusType]
108
+ if bonusesByUnit == nil then
109
+ return false
110
+ end
111
+ local bonuses = bonusesByUnit[unit]
112
+ if bonuses == nil then
113
+ return false
114
+ end
115
+ local index = bonuses.indexById[id]
116
+ if index == nil then
117
+ return false
118
+ end
119
+ local bonusesArray = bonuses.array
120
+ local bonusesArrayLastIndex = #bonusesArray - 1
121
+ local bonusesIdByIndex = bonuses.idByIndex
122
+ local bonusesIndexById = bonuses.indexById
123
+ bonusesArray[index + 1] = bonusesArray[bonusesArrayLastIndex + 1]
124
+ bonusesArray[bonusesArrayLastIndex + 1] = nil
125
+ local lastElementId = checkNotNull(bonuses.idByIndex[bonusesArrayLastIndex])
126
+ bonusesIdByIndex[index] = lastElementId
127
+ bonusesIdByIndex[bonusesArrayLastIndex] = nil
128
+ bonusesIndexById[lastElementId] = index
129
+ bonusesIndexById[id] = nil
130
+ processUnitBonus(unit, bonusType, bonusesArray)
131
+ return true
132
+ end
133
+ ____exports.updateUnitBonus = function(unit, bonusType, id, value)
134
+ local bonusesByUnit = bonusesByUnitByBonusType[bonusType]
135
+ if bonusesByUnit == nil then
136
+ return false
137
+ end
138
+ local bonuses = bonusesByUnit[unit]
139
+ if bonuses == nil then
140
+ return false
141
+ end
142
+ local index = bonuses.indexById[id]
143
+ if index == nil then
144
+ return false
145
+ end
146
+ local bonusesArray = bonuses.array
147
+ bonusesArray[index + 1] = value
148
+ processUnitBonus(unit, bonusType, bonusesArray)
149
+ return true
150
+ end
151
+ ____exports.addOrUpdateOrRemoveUnitBonus = function(unit, bonusType, id, value)
152
+ if value == bonusType.initialValue then
153
+ if id == nil then
154
+ return nil
155
+ end
156
+ ____exports.removeUnitBonus(unit, bonusType, id)
157
+ return nil
158
+ end
159
+ if id == nil then
160
+ return ____exports.addUnitBonus(unit, bonusType, value)
161
+ end
162
+ check(____exports.updateUnitBonus(unit, bonusType, id, value))
163
+ return id
164
+ end
165
+ ____exports.getUnitBonus = function(unit, bonusType, id)
166
+ local bonusesByUnit = bonusesByUnitByBonusType[bonusType]
167
+ if bonusesByUnit == nil then
168
+ return bonusType.initialValue
169
+ end
170
+ local bonuses = bonusesByUnit[unit]
171
+ if bonuses == nil then
172
+ return bonusType.initialValue
173
+ end
174
+ local index = bonuses.indexById[id]
175
+ if index == nil then
176
+ return bonusType.initialValue
177
+ end
178
+ return bonuses.array[index + 1]
179
+ end
180
+ Unit.onDamage:addListener(
181
+ 4,
182
+ function(source, target, event)
183
+ if receivedDamageFactorByUnit[target] ~= nil then
184
+ event.amount = event.amount * receivedDamageFactorByUnit[target]
185
+ end
186
+ end
187
+ )
188
+ return ____exports