warscript 0.0.1-dev.4f7cd3b → 0.0.1-dev.5005a48

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 (433) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/dummy.lua +4 -2
  6. package/core/types/effect.d.ts +12 -4
  7. package/core/types/effect.lua +67 -104
  8. package/core/types/frame.d.ts +16 -2
  9. package/core/types/frame.lua +141 -77
  10. package/core/types/handle.lua +9 -9
  11. package/core/types/item.d.ts +1 -0
  12. package/core/types/item.lua +1 -0
  13. package/core/types/player.d.ts +18 -1
  14. package/core/types/player.lua +76 -26
  15. package/core/types/playerCamera.d.ts +2 -0
  16. package/core/types/playerCamera.lua +123 -5
  17. package/core/types/playerColor.lua +4 -3
  18. package/core/types/sound.d.ts +18 -25
  19. package/core/types/sound.lua +113 -33
  20. package/core/types/tileCell.d.ts +18 -3
  21. package/core/types/tileCell.lua +108 -0
  22. package/core/types/timer.d.ts +9 -8
  23. package/core/types/timer.lua +45 -23
  24. package/core/types/unit.d.ts +5 -0
  25. package/core/types/unit.lua +5 -0
  26. package/core/util.d.ts +3 -1
  27. package/core/util.lua +115 -4
  28. package/decl/native.d.ts +1718 -964
  29. package/destroyable.d.ts +1 -0
  30. package/destroyable.lua +9 -0
  31. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  32. package/engine/ability-type-extended-tooltip.lua +44 -0
  33. package/engine/behavior.d.ts +14 -1
  34. package/engine/behavior.lua +230 -70
  35. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  36. package/engine/behaviour/ability/apply-buff.lua +36 -4
  37. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  38. package/engine/behaviour/ability/damage.d.ts +13 -3
  39. package/engine/behaviour/ability/damage.lua +41 -49
  40. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  41. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  42. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  43. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  44. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  45. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  46. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  47. package/engine/behaviour/ability/restore-mana.lua +6 -6
  48. package/engine/behaviour/ability.d.ts +17 -5
  49. package/engine/behaviour/ability.lua +97 -24
  50. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  51. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  52. package/engine/behaviour/unit.d.ts +41 -2
  53. package/engine/behaviour/unit.lua +270 -6
  54. package/engine/buff.d.ts +121 -59
  55. package/engine/buff.lua +605 -301
  56. package/engine/index.d.ts +2 -1
  57. package/engine/internal/ability.d.ts +14 -1
  58. package/engine/internal/ability.lua +113 -46
  59. package/engine/internal/item/ability.lua +82 -14
  60. package/engine/internal/item/fields.d.ts +12 -0
  61. package/engine/internal/item/fields.lua +33 -0
  62. package/engine/internal/item/owner-cache.d.ts +5 -0
  63. package/engine/internal/item/owner-cache.lua +4 -0
  64. package/engine/internal/item+owner.d.ts +2 -0
  65. package/engine/internal/item+owner.lua +37 -8
  66. package/engine/internal/item.d.ts +34 -18
  67. package/engine/internal/item.lua +308 -102
  68. package/engine/internal/mechanics/ability-duration.lua +1 -1
  69. package/engine/internal/mechanics/cast-ability.lua +6 -3
  70. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  71. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  72. package/engine/internal/misc/frame-coordinates.lua +21 -0
  73. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  74. package/engine/internal/misc/get-terrain-z.lua +11 -0
  75. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  76. package/engine/internal/misc/player-local-handle.lua +5 -0
  77. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  78. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  79. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  80. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  81. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  82. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  83. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  84. package/engine/internal/object-data/evasion-probability.lua +16 -0
  85. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  86. package/engine/internal/object-data/health-bonus.lua +16 -0
  87. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  88. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  89. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  90. package/engine/internal/object-data/mana-bonus.lua +16 -0
  91. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  92. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  93. package/engine/internal/unit/ability.d.ts +35 -0
  94. package/engine/internal/unit/ability.lua +98 -9
  95. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  96. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  97. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  98. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  99. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  100. package/engine/internal/unit/allowed-targets.lua +9 -1
  101. package/engine/internal/unit/appearance.d.ts +15 -0
  102. package/engine/internal/unit/appearance.lua +85 -0
  103. package/engine/internal/unit/attributes.d.ts +17 -0
  104. package/engine/internal/unit/attributes.lua +46 -0
  105. package/engine/internal/unit/bonus.d.ts +16 -0
  106. package/engine/internal/unit/bonus.lua +119 -8
  107. package/engine/internal/unit/buff.d.ts +2 -2
  108. package/engine/internal/unit/buff.lua +34 -19
  109. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  110. package/engine/internal/unit/equipment-inventory.lua +233 -0
  111. package/engine/internal/unit/expiration-timer.lua +1 -1
  112. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  113. package/engine/internal/unit/extended-inventory.lua +99 -0
  114. package/engine/internal/unit/fly-height.d.ts +7 -0
  115. package/engine/internal/unit/fly-height.lua +20 -0
  116. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  117. package/engine/internal/unit/ignore-events-items.lua +14 -0
  118. package/engine/internal/unit/interrupts.d.ts +12 -0
  119. package/engine/internal/unit/interrupts.lua +28 -0
  120. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  121. package/engine/internal/unit/inventory.lua +87 -0
  122. package/engine/internal/unit/item-container.d.ts +25 -0
  123. package/engine/internal/unit/item-container.lua +11 -0
  124. package/engine/internal/unit/item-order-events.d.ts +17 -0
  125. package/engine/internal/unit/item-order-events.lua +67 -0
  126. package/engine/internal/unit/item-slot.d.ts +27 -0
  127. package/engine/internal/unit/item-slot.lua +92 -0
  128. package/engine/internal/unit/main-selected.lua +12 -27
  129. package/engine/internal/unit/order.d.ts +20 -0
  130. package/engine/internal/unit/order.lua +136 -0
  131. package/engine/internal/unit/range-event.d.ts +12 -0
  132. package/engine/internal/unit/range-event.lua +90 -0
  133. package/engine/internal/unit/scale.d.ts +7 -0
  134. package/engine/internal/unit/scale.lua +20 -0
  135. package/engine/internal/unit+ability.d.ts +2 -1
  136. package/engine/internal/unit+ability.lua +73 -3
  137. package/engine/internal/unit+bonus.lua +3 -3
  138. package/engine/internal/unit+damage.d.ts +11 -11
  139. package/engine/internal/unit+damage.lua +43 -14
  140. package/engine/internal/unit+rally.lua +9 -31
  141. package/engine/internal/unit+spellSteal.lua +1 -2
  142. package/engine/internal/unit-missile-data.lua +58 -32
  143. package/engine/internal/unit-missile-launch.lua +65 -27
  144. package/engine/internal/unit.d.ts +45 -34
  145. package/engine/internal/unit.lua +411 -323
  146. package/engine/lightning.d.ts +12 -5
  147. package/engine/lightning.lua +48 -14
  148. package/engine/local-client.d.ts +28 -0
  149. package/engine/local-client.lua +324 -54
  150. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  151. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  152. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  153. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  154. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  155. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  156. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  157. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  158. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  159. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  160. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  161. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  162. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  163. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  164. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  165. package/engine/object-data/auxiliary/item-class.lua +2 -0
  166. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  167. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  168. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  169. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  170. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  171. package/engine/object-data/auxiliary/order-type.lua +2 -0
  172. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  173. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  174. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  175. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  176. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  177. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  178. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  179. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  180. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  181. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  182. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  183. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  184. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  185. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  186. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  187. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  188. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  189. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  190. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  191. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  192. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  193. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  194. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  195. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  196. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  197. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  198. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  199. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  200. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  201. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  202. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  203. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  204. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  205. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  206. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  207. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  208. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  209. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  210. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  211. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  212. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  213. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  214. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  215. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  216. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  217. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  218. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  219. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  220. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  221. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  222. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  223. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  224. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  225. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  226. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  227. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  228. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  229. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  230. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  231. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  232. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  233. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  234. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  235. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  236. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  237. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  238. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  239. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  240. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  241. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  242. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  243. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  244. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  245. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  246. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  247. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  248. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  249. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  250. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  251. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  252. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  253. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  254. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  255. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  256. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  257. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  258. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  259. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  260. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  261. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  262. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  263. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  264. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  265. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  266. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  267. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  268. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  269. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  270. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  271. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  272. package/engine/object-data/entry/ability-type/passive-with-cooldown.d.ts +23 -0
  273. package/engine/object-data/entry/ability-type/passive-with-cooldown.lua +112 -0
  274. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  275. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  276. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  277. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  278. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  279. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  280. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  281. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  282. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  283. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  284. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  285. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  286. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  287. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  288. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  289. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  290. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  291. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  292. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  293. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  294. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  295. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  296. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  297. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  298. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  299. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  300. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  301. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  302. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  303. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  304. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  305. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  306. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  307. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  308. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  309. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  310. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  311. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  312. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  313. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  314. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  315. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  316. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  317. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  318. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  319. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  320. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  321. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  322. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  323. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  324. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  325. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  326. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  327. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  328. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  329. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  330. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  331. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  332. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  333. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  334. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  335. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  336. package/engine/object-data/entry/ability-type/web.lua +52 -0
  337. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  338. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  339. package/engine/object-data/entry/ability-type.d.ts +41 -20
  340. package/engine/object-data/entry/ability-type.lua +329 -32
  341. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  342. package/engine/object-data/entry/buff-type.d.ts +10 -12
  343. package/engine/object-data/entry/buff-type.lua +39 -29
  344. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  345. package/engine/object-data/entry/destructible-type.lua +181 -0
  346. package/engine/object-data/entry/item-type.d.ts +18 -3
  347. package/engine/object-data/entry/item-type.lua +88 -4
  348. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  349. package/engine/object-data/entry/lightning-type.lua +1 -1
  350. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  351. package/engine/object-data/entry/sound-preset.lua +140 -0
  352. package/engine/object-data/entry/unit-type.d.ts +71 -6
  353. package/engine/object-data/entry/unit-type.lua +592 -93
  354. package/engine/object-data/entry/upgrade.d.ts +2 -2
  355. package/engine/object-data/entry/upgrade.lua +4 -4
  356. package/engine/object-data/entry.d.ts +21 -14
  357. package/engine/object-data/entry.lua +68 -32
  358. package/engine/object-field/ability.d.ts +5 -4
  359. package/engine/object-field/ability.lua +10 -6
  360. package/engine/object-field/item.d.ts +22 -0
  361. package/engine/object-field/item.lua +118 -0
  362. package/engine/object-field/unit.d.ts +72 -3
  363. package/engine/object-field/unit.lua +268 -7
  364. package/engine/object-field.d.ts +26 -7
  365. package/engine/object-field.lua +362 -117
  366. package/engine/random.d.ts +10 -0
  367. package/engine/random.lua +21 -0
  368. package/engine/standard/entries/ability-type.d.ts +3102 -7
  369. package/engine/standard/entries/ability-type.lua +0 -6
  370. package/engine/standard/entries/buff-type.d.ts +48 -0
  371. package/engine/standard/entries/buff-type.lua +46 -0
  372. package/engine/standard/entries/item-type.d.ts +1299 -0
  373. package/engine/standard/entries/item-type.lua +2 -0
  374. package/engine/standard/entries/lightning-type.d.ts +42 -15
  375. package/engine/standard/entries/lightning-type.lua +0 -14
  376. package/engine/standard/entries/sound-preset.d.ts +10 -0
  377. package/engine/standard/entries/sound-preset.lua +10 -0
  378. package/engine/standard/entries/unit-type.d.ts +5 -0
  379. package/engine/standard/entries/unit-type.lua +5 -0
  380. package/engine/standard/fields/ability.d.ts +2 -2
  381. package/engine/standard/fields/ability.lua +2 -2
  382. package/engine/standard/fields/item.d.ts +4 -0
  383. package/engine/standard/fields/item.lua +6 -0
  384. package/engine/standard/fields/unit.d.ts +12 -0
  385. package/engine/standard/fields/unit.lua +20 -0
  386. package/engine/synchronization.d.ts +11 -0
  387. package/engine/synchronization.lua +77 -0
  388. package/engine/text-tag.d.ts +36 -2
  389. package/engine/text-tag.lua +250 -10
  390. package/engine/unit.d.ts +12 -1
  391. package/engine/unit.lua +12 -1
  392. package/event.d.ts +1 -1
  393. package/lualib_bundle.lua +1 -1
  394. package/math.d.ts +2 -0
  395. package/math.lua +14 -0
  396. package/net/socket.lua +1 -1
  397. package/network.lua +25 -1
  398. package/objutil/buff.lua +12 -11
  399. package/objutil/object.lua +1 -1
  400. package/objutil/unit.lua +8 -0
  401. package/operation.d.ts +8 -1
  402. package/operation.lua +38 -18
  403. package/package.json +3 -23
  404. package/patch-lua.lua +15 -0
  405. package/patch-lualib.lua +1 -1
  406. package/utility/arrays.d.ts +9 -1
  407. package/utility/arrays.lua +28 -0
  408. package/utility/callback-array.d.ts +17 -0
  409. package/utility/callback-array.lua +61 -0
  410. package/utility/functions.d.ts +8 -0
  411. package/utility/functions.lua +13 -0
  412. package/utility/linked-map.d.ts +35 -0
  413. package/utility/linked-map.lua +107 -0
  414. package/utility/linked-set.d.ts +5 -1
  415. package/utility/linked-set.lua +49 -1
  416. package/utility/lua-maps.d.ts +15 -2
  417. package/utility/lua-maps.lua +53 -2
  418. package/utility/lua-sets.d.ts +2 -0
  419. package/utility/lua-sets.lua +7 -0
  420. package/utility/random.d.ts +102 -0
  421. package/utility/random.lua +273 -0
  422. package/utility/records.lua +20 -1
  423. package/utility/reflection.lua +11 -7
  424. package/utility/types.d.ts +3 -0
  425. package/utility/unordered-map.d.ts +27 -0
  426. package/utility/unordered-map.lua +99 -0
  427. package/core/types/order.d.ts +0 -25
  428. package/core/types/order.lua +0 -55
  429. package/engine/internal/unit/item.lua +0 -79
  430. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  431. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  432. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  433. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,21 @@
1
+ local ____exports = {}
2
+ local getLocalClientWidth = BlzGetLocalClientWidth
3
+ local getLocalClientHeight = BlzGetLocalClientHeight
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.getFrameMinXMaxX = function()
7
+ local w = getLocalClientWidth()
8
+ local h = getLocalClientHeight()
9
+ local width4by3 = (w - h / 600 * 800) / 2
10
+ local pxtodpi = 0.6 / h
11
+ local minX = -width4by3 * pxtodpi
12
+ local maxX = minX + w * pxtodpi
13
+ return minX, maxX
14
+ end
15
+ ---
16
+ -- @internal For use by internal systems only.
17
+ ____exports.FRAME_MIN_Y = 0
18
+ ---
19
+ -- @internal For use by internal systems only.
20
+ ____exports.FRAME_MAX_Y = 0.6
21
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,11 @@
1
+ local ____exports = {}
2
+ local getLocationZ = GetLocationZ
3
+ local moveLocation = MoveLocation
4
+ local location = Location(0, 0)
5
+ ---
6
+ -- @internal For use by internal systems only.
7
+ ____exports.getTerrainZ = function(x, y)
8
+ moveLocation(location, x, y)
9
+ return getLocationZ(location)
10
+ end
11
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,5 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal For use by internal systems only.
4
+ ____exports.PLAYER_LOCAL_HANDLE = GetLocalPlayer()
5
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,12 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal The original natives, captured before `unit+ability` wraps them to report
4
+ -- ability level changes. For internal level juggling that must not be reported.
5
+ ____exports.rawSetUnitAbilityLevel = SetUnitAbilityLevel
6
+ ---
7
+ -- @internal
8
+ ____exports.rawIncUnitAbilityLevel = IncUnitAbilityLevel
9
+ ---
10
+ -- @internal
11
+ ____exports.rawDecUnitAbilityLevel = DecUnitAbilityLevel
12
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -1,6 +1,6 @@
1
1
  local ____exports = {}
2
- local ____attribute_2Dincrease = require("engine.object-data.entry.ability-type.attribute-increase")
3
- local AttributeBonusAbilityType = ____attribute_2Dincrease.AttributeBonusAbilityType
2
+ local ____attribute_2Dbonus = require("engine.object-data.entry.ability-type.attribute-bonus")
3
+ local AttributeBonusAbilityType = ____attribute_2Dbonus.AttributeBonusAbilityType
4
4
  ---
5
5
  -- @internal For use by internal systems.
6
6
  ____exports.ATTRIBUTE_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
@@ -1,2 +1,2 @@
1
1
  /** @noSelfInFile */
2
- export declare const AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD: jabilityreallevelfield;
2
+ export {};
@@ -10,5 +10,7 @@ ____exports.AUTO_ATTACK_SPEED_INCREASE_DUMMY_ABILITY_TYPE_ID = compiletime(funct
10
10
  abilityType.autoAttackSpeedIncreaseFactor = 0
11
11
  return abilityType.id
12
12
  end)
13
+ ---
14
+ -- @internal For use by internal systems.
13
15
  ____exports.AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD = ABILITY_RLF_ATTACK_SPEED_INCREASE_ISX1
14
16
  return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____evasion = require("engine.object-data.entry.ability-type.evasion")
3
+ local EvasionAbilityType = ____evasion.EvasionAbilityType
4
+ ---
5
+ -- @internal For use by internal systems.
6
+ ____exports.EVASION_PROBABILITY_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = EvasionAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.evasionProbability = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems.
15
+ ____exports.EVASION_PROBABILITY_ABILITY_FIELD = ABILITY_RLF_CHANCE_TO_EVADE_EEV1
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____health_2Dbonus = require("engine.object-data.entry.ability-type.health-bonus")
3
+ local HealthBonusAbilityType = ____health_2Dbonus.HealthBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = HealthBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.healthBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_LIFE_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,48 @@
1
+ local ____exports = {}
2
+ local ____healing_2Dward_2Daura = require("engine.object-data.entry.ability-type.healing-ward-aura")
3
+ local HealingWardAuraAbilityType = ____healing_2Dward_2Daura.HealingWardAuraAbilityType
4
+ local ____item_2Dlife_2Dregeneration = require("engine.object-data.entry.ability-type.item-life-regeneration")
5
+ local ItemLifeRegenerationAbilityType = ____item_2Dlife_2Dregeneration.ItemLifeRegenerationAbilityType
6
+ local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
7
+ local combatClassificationsOf = ____combat_2Dclassification.combatClassificationsOf
8
+ local function createHealthRegenerationDummyAbilityType(healthRegeneration)
9
+ local abilityType = ItemLifeRegenerationAbilityType:create()
10
+ abilityType.isInternal = true
11
+ abilityType.isButtonVisible = false
12
+ abilityType.healthRegeneration = healthRegeneration
13
+ return abilityType.id
14
+ end
15
+ ---
16
+ -- @internal For use by internal systems. The ability at index `i` regenerates `2^i` hit
17
+ -- points per second; together they compose any value from 0 to 1023.
18
+ ____exports.HEALTH_REGENERATION_RATE_INCREASE_DUMMY_ABILITY_TYPE_IDS = compiletime(function()
19
+ local abilityTypeIds = {}
20
+ for i = 0, 9 do
21
+ abilityTypeIds[i + 1] = createHealthRegenerationDummyAbilityType(1 << i)
22
+ end
23
+ return abilityTypeIds
24
+ end)
25
+ ---
26
+ -- @internal For use by internal systems.
27
+ ____exports.HEALTH_REGENERATION_RATE_DECREASE_DUMMY_VALUE = -1024
28
+ ---
29
+ -- @internal For use by internal systems. Shifts negative values into the positive range.
30
+ ____exports.HEALTH_REGENERATION_RATE_DECREASE_DUMMY_ABILITY_TYPE_ID = compiletime(function() return createHealthRegenerationDummyAbilityType(____exports.HEALTH_REGENERATION_RATE_DECREASE_DUMMY_VALUE) end)
31
+ ---
32
+ -- @internal For use by internal systems. Holds the fractional remainder; being an aura,
33
+ -- it accepts field writes but applies with the usual aura delay.
34
+ ____exports.FRACTIONAL_HEALTH_REGENERATION_RATE_INCREASE_DUMMY_ABILITY_TYPE_ID = compiletime(function()
35
+ local abilityType = HealingWardAuraAbilityType:create()
36
+ abilityType.isInternal = true
37
+ abilityType.isButtonVisible = false
38
+ abilityType.healthRegeneration = 0
39
+ abilityType.isHealthRegenerationPercentage = false
40
+ abilityType.allowedTargetCombatClassifications = combatClassificationsOf(4096)
41
+ abilityType.buffTypeIds = {}
42
+ abilityType.targetEffectPresets = {}
43
+ return abilityType.id
44
+ end)
45
+ ---
46
+ -- @internal For use by internal systems.
47
+ ____exports.FRACTIONAL_HEALTH_REGENERATION_RATE_INCREASE_ABILITY_FIELD = ABILITY_RLF_AMOUNT_OF_HIT_POINTS_REGENERATED
48
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dbonus = require("engine.object-data.entry.ability-type.mana-bonus")
3
+ local ManaBonusAbilityType = ____mana_2Dbonus.ManaBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.MANA_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.MANA_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_MANA_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dregeneration = require("engine.object-data.entry.ability-type.mana-regeneration")
3
+ local ManaRegenerationAbilityType = ____mana_2Dregeneration.ManaRegenerationAbilityType
4
+ ---
5
+ -- @internal For use by internal systems.
6
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaRegenerationAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaRegenerationRateIncreaseFactor = 4
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems.
15
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_ABILITY_FIELD = ABILITY_RLF_MANA_REGENERATION_BONUS_AS_FRACTION_OF_NORMAL
16
+ return ____exports
@@ -150,3 +150,38 @@ declare module "../unit" {
150
150
  };
151
151
  }
152
152
  }
153
+ declare module "../unit" {
154
+ namespace Unit {
155
+ const abilityImpactEvent: DispatchingEvent<[Unit, Ability]>;
156
+ }
157
+ }
158
+ declare module "../unit" {
159
+ namespace Unit {
160
+ const abilityWidgetTargetImpactEvent: DispatchingEvent<[Unit, Ability, Widget]>;
161
+ }
162
+ }
163
+ declare module "../unit" {
164
+ namespace Unit {
165
+ const abilityUnitTargetImpactEvent: DispatchingEvent<[Unit, Ability, Unit]>;
166
+ }
167
+ }
168
+ declare module "../unit" {
169
+ namespace Unit {
170
+ const abilityItemTargetImpactEvent: DispatchingEvent<[Unit, Ability, Item]>;
171
+ }
172
+ }
173
+ declare module "../unit" {
174
+ namespace Unit {
175
+ const abilityDestructibleTargetImpactEvent: DispatchingEvent<[Unit, Ability, Destructable]>;
176
+ }
177
+ }
178
+ declare module "../unit" {
179
+ namespace Unit {
180
+ const abilityPointTargetImpactEvent: DispatchingEvent<[Unit, Ability, number, number]>;
181
+ }
182
+ }
183
+ declare module "../unit" {
184
+ namespace Unit {
185
+ const abilityNoTargetImpactEvent: DispatchingEvent<[Unit, Ability]>;
186
+ }
187
+ }
@@ -21,6 +21,13 @@ local ____preconditions = require("utility.preconditions")
21
21
  local checkNotNull = ____preconditions.checkNotNull
22
22
  local ____lazy = require("utility.lazy")
23
23
  local lazyRecord = ____lazy.lazyRecord
24
+ local ____timer = require("core.types.timer")
25
+ local consumeZeroTimerCallback = ____timer.consumeZeroTimerCallback
26
+ local Timer = ____timer.Timer
27
+ local ____lua_2Dsets = require("utility.lua-sets")
28
+ local luaSetOf = ____lua_2Dsets.luaSetOf
29
+ local ____attributes = require("attributes")
30
+ local attribute = ____attributes.attribute
24
31
  local eventInvoke = Event.invoke
25
32
  local condition = Condition
26
33
  local createTrigger = CreateTrigger
@@ -345,21 +352,17 @@ rawset(
345
352
  extractAbilityTypeId
346
353
  )
347
354
  )
355
+ local internalAbilityChannelingFinishEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_FINISH, collectUnitAbilityEventParameters)
348
356
  rawset(
349
357
  Unit,
350
358
  "abilityChannelingFinishEvent",
351
- createDispatchingEvent(
352
- __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_FINISH, collectUnitAbilityEventParameters),
353
- extractAbilityTypeId
354
- )
359
+ createDispatchingEvent(internalAbilityChannelingFinishEvent, extractAbilityTypeId)
355
360
  )
361
+ local internalAbilityStopEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_ENDCAST, collectUnitAbilityEventParameters)
356
362
  rawset(
357
363
  Unit,
358
364
  "abilityStopEvent",
359
- createDispatchingEvent(
360
- __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_ENDCAST, collectUnitAbilityEventParameters),
361
- extractAbilityTypeId
362
- )
365
+ createDispatchingEvent(internalAbilityStopEvent, extractAbilityTypeId)
363
366
  )
364
367
  rawset(
365
368
  Unit,
@@ -376,7 +379,7 @@ rawset(
376
379
  condition(function()
377
380
  local unit = Unit:of(getTriggerUnit())
378
381
  if unit ~= nil then
379
- local ability = unit:getAbilityById(abilityTypeId)
382
+ local ability = unit:getAbility(abilityTypeId)
380
383
  if ability ~= nil then
381
384
  eventInvoke(event, unit, ability, orderTypeStringId)
382
385
  end
@@ -388,4 +391,90 @@ rawset(
388
391
  end)
389
392
  end)
390
393
  )
394
+ local internalAbilityImpactEvent = __TS__New(Event)
395
+ local impactCallbackIdAttribute = attribute()
396
+ local function invokeImpactEvent(unit, ability, ...)
397
+ ability[impactCallbackIdAttribute] = nil
398
+ eventInvoke(internalAbilityImpactEvent, unit, ability, ...)
399
+ end
400
+ internalAbilityChannelingStartEvent:addListener(
401
+ 999999,
402
+ function(unit, ability, ...)
403
+ ability[impactCallbackIdAttribute] = Timer:run(invokeImpactEvent, unit, ability, ...)
404
+ end
405
+ )
406
+ local function consumeImpactCallback(_, ability)
407
+ local impactCallbackId = ability[impactCallbackIdAttribute]
408
+ if impactCallbackId ~= nil then
409
+ consumeZeroTimerCallback(impactCallbackId)
410
+ end
411
+ end
412
+ internalAbilityChannelingFinishEvent:addListener(999999, consumeImpactCallback)
413
+ internalAbilityStopEvent:addListener(999999, consumeImpactCallback)
414
+ rawset(
415
+ Unit,
416
+ "abilityImpactEvent",
417
+ createDispatchingEvent(
418
+ createCommonEvent(internalAbilityImpactEvent),
419
+ extractAbilityTypeId
420
+ )
421
+ )
422
+ rawset(
423
+ Unit,
424
+ "abilityWidgetTargetImpactEvent",
425
+ createDispatchingEvent(
426
+ createWidgetTargetEvent(internalAbilityImpactEvent),
427
+ extractAbilityTypeId
428
+ )
429
+ )
430
+ rawset(
431
+ Unit,
432
+ "abilityUnitTargetImpactEvent",
433
+ createDispatchingEvent(
434
+ createUnitTargetEvent(internalAbilityImpactEvent),
435
+ extractAbilityTypeId
436
+ )
437
+ )
438
+ rawset(
439
+ Unit,
440
+ "abilityItemTargetImpactEvent",
441
+ createDispatchingEvent(
442
+ createItemTargetEvent(internalAbilityImpactEvent),
443
+ extractAbilityTypeId
444
+ )
445
+ )
446
+ rawset(
447
+ Unit,
448
+ "abilityDestructibleTargetImpactEvent",
449
+ createDispatchingEvent(
450
+ createDestructibleTargetEvent(internalAbilityImpactEvent),
451
+ extractAbilityTypeId
452
+ )
453
+ )
454
+ rawset(
455
+ Unit,
456
+ "abilityPointTargetImpactEvent",
457
+ createDispatchingEvent(
458
+ createPointTargetEvent(internalAbilityImpactEvent),
459
+ extractAbilityTypeId
460
+ )
461
+ )
462
+ rawset(
463
+ Unit,
464
+ "abilityNoTargetImpactEvent",
465
+ createDispatchingEvent(
466
+ createNoTargetEvent(internalAbilityImpactEvent),
467
+ extractAbilityTypeId
468
+ )
469
+ )
470
+ local spellEffectOnlyAbilityTypeIds = luaSetOf(fourCC("AAns"))
471
+ internalAbilityChannelingStartEvent:addListener(
472
+ -999999,
473
+ function(unit, ability)
474
+ if spellEffectOnlyAbilityTypeIds[ability.parentTypeId] ~= nil then
475
+ eventInvoke(internalAbilityChannelingFinishEvent, unit, ability)
476
+ eventInvoke(internalAbilityStopEvent, unit, ability)
477
+ end
478
+ end
479
+ )
391
480
  return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,12 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.internal.unit")
3
+ local Unit = ____unit.Unit
4
+ local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
5
+ local unitRemoveFillerItems = ____add_2Ditem_2Dto_2Dslot.unitRemoveFillerItems
6
+ Unit.itemPickedUpEvent:addListener(
7
+ 999999,
8
+ function(unit)
9
+ unitRemoveFillerItems(unit.handle)
10
+ end
11
+ )
12
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,93 @@
1
+ local ____exports = {}
2
+ local ____blank = require("engine.object-data.entry.item-type.blank")
3
+ local BlankItemType = ____blank.BlankItemType
4
+ local ____arrays = require("utility.arrays")
5
+ local array = ____arrays.array
6
+ local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
7
+ local ignoreEventsItemTypeIds = ____ignore_2Devents_2Ditems.ignoreEventsItemTypeIds
8
+ local ____item_2Dcontainer = require("engine.internal.unit.item-container")
9
+ local UNIT_EXTENDED_INVENTORY_SLOT_COUNT = ____item_2Dcontainer.UNIT_EXTENDED_INVENTORY_SLOT_COUNT
10
+ local UNIT_INVENTORY_SLOT_COUNT = ____item_2Dcontainer.UNIT_INVENTORY_SLOT_COUNT
11
+ local setItemVisible = SetItemVisible
12
+ local unitAddItem = UnitAddItem
13
+ local unitInventorySize = UnitInventorySize
14
+ local unitItemInBagSlot = UnitItemInBagSlot
15
+ local unitItemInSlot = UnitItemInSlot
16
+ local unitRemoveItem = UnitRemoveItem
17
+ ---
18
+ -- @internal For use by internal systems only.
19
+ ____exports.SLOT_FILLER_ITEM_TYPE_ID = compiletime(function()
20
+ local itemType = BlankItemType:create()
21
+ itemType.name = "[Warscript/Dummy] Slot Filler"
22
+ return itemType.id
23
+ end)
24
+ ignoreEventsItemTypeIds[____exports.SLOT_FILLER_ITEM_TYPE_ID] = true
25
+ --- Enough fillers to occupy every regular and extended inventory slot that precedes the last extended one.
26
+ --
27
+ -- @internal For use by internal systems only.
28
+ ____exports.fillerItems = array(
29
+ UNIT_INVENTORY_SLOT_COUNT + UNIT_EXTENDED_INVENTORY_SLOT_COUNT,
30
+ function()
31
+ local item = CreateItem(____exports.SLOT_FILLER_ITEM_TYPE_ID, 0, 0)
32
+ setItemVisible(item, false)
33
+ return item
34
+ end
35
+ )
36
+ ---
37
+ -- @internal For use by internal systems only.
38
+ ____exports.unitsWithFillerItems = {}
39
+ ---
40
+ -- @internal For use by internal systems only.
41
+ ____exports.unitRemoveFillerItems = function(unit)
42
+ if ____exports.unitsWithFillerItems[unit] ~= nil then
43
+ for ____, fillerItem in ipairs(____exports.fillerItems) do
44
+ unitRemoveItem(unit, fillerItem)
45
+ setItemVisible(fillerItem, false)
46
+ end
47
+ ____exports.unitsWithFillerItems[unit] = nil
48
+ end
49
+ end
50
+ --- Adds an item to a unit so that it lands in a specific slot of its regular or extended inventory.
51
+ --
52
+ -- The engine fills slots in order (the regular inventory first, then the extended one), so every empty slot
53
+ -- preceding the target is temporarily occupied by a filler item. Unlike `moveslot` orders, this works
54
+ -- regardless of whether the unit can currently act.
55
+ --
56
+ -- @internal For use by internal systems only.
57
+ ____exports.unitAddItemToSlot = function(unit, item, slot, containerType)
58
+ if containerType == nil then
59
+ containerType = 0
60
+ end
61
+ local fillerCount = 0
62
+ local function fillEmptySlots(slotCount, itemInSlot)
63
+ for precedingSlot = 0, slotCount - 1 do
64
+ if itemInSlot(unit, precedingSlot) == nil then
65
+ unitAddItem(unit, ____exports.fillerItems[fillerCount + 1])
66
+ fillerCount = fillerCount + 1
67
+ end
68
+ end
69
+ end
70
+ if containerType == 0 then
71
+ fillEmptySlots(slot, unitItemInSlot)
72
+ else
73
+ fillEmptySlots(
74
+ unitInventorySize(unit),
75
+ unitItemInSlot
76
+ )
77
+ fillEmptySlots(slot, unitItemInBagSlot)
78
+ end
79
+ if fillerCount > 0 then
80
+ ____exports.unitsWithFillerItems[unit] = true
81
+ end
82
+ local result = unitAddItem(unit, item)
83
+ if ____exports.unitsWithFillerItems[unit] ~= nil then
84
+ for fillerIndex = 0, fillerCount - 1 do
85
+ local fillerItem = ____exports.fillerItems[fillerIndex + 1]
86
+ unitRemoveItem(unit, fillerItem)
87
+ setItemVisible(fillerItem, false)
88
+ end
89
+ ____exports.unitsWithFillerItems[unit] = nil
90
+ end
91
+ return result
92
+ end
93
+ return ____exports
@@ -2,7 +2,7 @@
2
2
  import { CombatClassifications } from "../../object-data/auxiliary/combat-classification";
3
3
  declare module "../unit" {
4
4
  interface Unit {
5
- isAllowedTarget(this: Unit, source: Unit, allowedTargetCombatClassifications: CombatClassifications): boolean;
5
+ isAllowedTarget(this: Unit, source: Unit, allowedTargetCombatClassifications?: CombatClassifications): boolean;
6
6
  }
7
7
  }
8
8
  declare module "../unit" {
@@ -5,7 +5,15 @@ local initializeFilterTargetState = ____combat_2Dclassification.initializeFilter
5
5
  local ____unit = require("engine.internal.unit")
6
6
  local Unit = ____unit.Unit
7
7
  Unit.prototype.isAllowedTarget = function(self, source, allowedTargetCombatClassifications)
8
- initializeFilterTargetState(source, allowedTargetCombatClassifications)
8
+ if allowedTargetCombatClassifications ~= nil then
9
+ initializeFilterTargetState(source, allowedTargetCombatClassifications)
10
+ return filterTarget(self)
11
+ end
12
+ initializeFilterTargetState(source, source.firstWeapon.allowedTargetCombatClassifications)
13
+ if filterTarget(self) then
14
+ return true
15
+ end
16
+ initializeFilterTargetState(source, source.secondWeapon.allowedTargetCombatClassifications)
9
17
  return filterTarget(self)
10
18
  end
11
19
  Unit.getAllowedTargetsInRange = function(source, allowedTargetCombatClassifications, x, y, range)
@@ -0,0 +1,15 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ getAnimationDuration(this: Unit, animation: string | number): number;
5
+ setAurasEnabled(this: Unit, enabled: boolean, affectsUI?: boolean): void;
6
+ isHeroGlowAllowed: boolean;
7
+ maximumFlyHeight: number;
8
+ showsAirToGroundIndicator: boolean;
9
+ alwaysDisplaysHealth: boolean;
10
+ }
11
+ interface UnitWeapon {
12
+ resetAttack(this: UnitWeapon): void;
13
+ }
14
+ }
15
+ export {};
@@ -0,0 +1,85 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
+ local ____exports = {}
4
+ local ____unit = require("engine.internal.unit")
5
+ local Unit = ____unit.Unit
6
+ local UnitWeapon = ____unit.UnitWeapon
7
+ local allowHeroGlowOnUnit = AllowHeroGlowOnUnit
8
+ local disallowHeroGlowOnUnit = DisallowHeroGlowOnUnit
9
+ local getUnitAnimationDuration = BlzGetUnitAnimationDuration
10
+ local getUnitAnimationDurationByIndex = BlzGetUnitAnimationDurationByIndex
11
+ local getUnitBooleanField = BlzGetUnitBooleanField
12
+ local getUnitRealField = BlzGetUnitRealField
13
+ local heroGlowIsAllowedOnUnit = HeroGlowIsAllowedOnUnit
14
+ local resetUnitAttack = BlzResetUnitAttack
15
+ local setUnitBooleanField = BlzSetUnitBooleanField
16
+ local setUnitRealField = BlzSetUnitRealField
17
+ local unitEnableAuras = BlzUnitEnableAuras
18
+ Unit.prototype.getAnimationDuration = function(self, animation)
19
+ if type(animation) == "number" then
20
+ return getUnitAnimationDurationByIndex(self.handle, animation)
21
+ end
22
+ return getUnitAnimationDuration(self.handle, animation)
23
+ end
24
+ Unit.prototype.setAurasEnabled = function(self, enabled, affectsUI)
25
+ if affectsUI == nil then
26
+ affectsUI = true
27
+ end
28
+ unitEnableAuras(self.handle, enabled, affectsUI)
29
+ end
30
+ __TS__ObjectDefineProperty(
31
+ Unit.prototype,
32
+ "isHeroGlowAllowed",
33
+ {
34
+ get = function(self)
35
+ return heroGlowIsAllowedOnUnit(self.handle)
36
+ end,
37
+ set = function(self, allowed)
38
+ if allowed then
39
+ allowHeroGlowOnUnit(self.handle)
40
+ else
41
+ disallowHeroGlowOnUnit(self.handle)
42
+ end
43
+ end
44
+ }
45
+ )
46
+ __TS__ObjectDefineProperty(
47
+ Unit.prototype,
48
+ "maximumFlyHeight",
49
+ {
50
+ get = function(self)
51
+ return getUnitRealField(self.handle, UNIT_RF_FLY_MAX_HEIGHT)
52
+ end,
53
+ set = function(self, height)
54
+ setUnitRealField(self.handle, UNIT_RF_FLY_MAX_HEIGHT, height)
55
+ end
56
+ }
57
+ )
58
+ __TS__ObjectDefineProperty(
59
+ Unit.prototype,
60
+ "showsAirToGroundIndicator",
61
+ {
62
+ get = function(self)
63
+ return getUnitBooleanField(self.handle, UNIT_BF_SHOW_AIR_TO_GROUND)
64
+ end,
65
+ set = function(self, show)
66
+ setUnitBooleanField(self.handle, UNIT_BF_SHOW_AIR_TO_GROUND, show)
67
+ end
68
+ }
69
+ )
70
+ __TS__ObjectDefineProperty(
71
+ Unit.prototype,
72
+ "alwaysDisplaysHealth",
73
+ {
74
+ get = function(self)
75
+ return getUnitBooleanField(self.handle, UNIT_BF_FORCE_DISPLAY_HP)
76
+ end,
77
+ set = function(self, show)
78
+ setUnitBooleanField(self.handle, UNIT_BF_FORCE_DISPLAY_HP, show)
79
+ end
80
+ }
81
+ )
82
+ UnitWeapon.prototype.resetAttack = function(self)
83
+ resetUnitAttack(self.unit.handle, self.index)
84
+ end
85
+ return ____exports