warscript 0.0.1-dev.c362181 → 0.0.1-dev.c47d565

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 (401) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/dummy.lua +4 -2
  4. package/core/types/effect.d.ts +12 -4
  5. package/core/types/effect.lua +67 -104
  6. package/core/types/frame.d.ts +16 -2
  7. package/core/types/frame.lua +141 -77
  8. package/core/types/handle.lua +9 -9
  9. package/core/types/item.d.ts +1 -0
  10. package/core/types/item.lua +1 -0
  11. package/core/types/player.d.ts +18 -1
  12. package/core/types/player.lua +76 -26
  13. package/core/types/playerCamera.d.ts +2 -0
  14. package/core/types/playerCamera.lua +123 -5
  15. package/core/types/playerColor.lua +4 -3
  16. package/core/types/sound.d.ts +1 -1
  17. package/core/types/sound.lua +19 -9
  18. package/core/types/tileCell.d.ts +18 -3
  19. package/core/types/tileCell.lua +108 -0
  20. package/core/types/timer.d.ts +9 -8
  21. package/core/types/timer.lua +45 -23
  22. package/core/types/unit.d.ts +5 -0
  23. package/core/types/unit.lua +5 -0
  24. package/core/util.d.ts +3 -1
  25. package/core/util.lua +109 -3
  26. package/decl/native.d.ts +1718 -964
  27. package/destroyable.d.ts +1 -0
  28. package/destroyable.lua +9 -0
  29. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  30. package/engine/ability-type-extended-tooltip.lua +44 -0
  31. package/engine/behavior.d.ts +14 -1
  32. package/engine/behavior.lua +230 -70
  33. package/engine/behaviour/ability/apply-buff.lua +5 -5
  34. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  35. package/engine/behaviour/ability/damage.d.ts +10 -3
  36. package/engine/behaviour/ability/damage.lua +41 -49
  37. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  38. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  39. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  40. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  41. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  42. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  43. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  44. package/engine/behaviour/ability/restore-mana.lua +6 -6
  45. package/engine/behaviour/ability.d.ts +16 -6
  46. package/engine/behaviour/ability.lua +69 -21
  47. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  48. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  49. package/engine/behaviour/unit.d.ts +40 -3
  50. package/engine/behaviour/unit.lua +270 -6
  51. package/engine/buff.d.ts +114 -58
  52. package/engine/buff.lua +564 -303
  53. package/engine/index.d.ts +2 -1
  54. package/engine/internal/ability.d.ts +14 -1
  55. package/engine/internal/ability.lua +113 -44
  56. package/engine/internal/item/ability.lua +63 -11
  57. package/engine/internal/item/fields.d.ts +12 -0
  58. package/engine/internal/item/fields.lua +33 -0
  59. package/engine/internal/item/owner-cache.d.ts +5 -0
  60. package/engine/internal/item/owner-cache.lua +4 -0
  61. package/engine/internal/item+owner.d.ts +2 -0
  62. package/engine/internal/item+owner.lua +37 -8
  63. package/engine/internal/item.d.ts +32 -16
  64. package/engine/internal/item.lua +257 -82
  65. package/engine/internal/mechanics/ability-duration.lua +1 -1
  66. package/engine/internal/mechanics/cast-ability.lua +6 -3
  67. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  68. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  69. package/engine/internal/misc/frame-coordinates.lua +21 -0
  70. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  71. package/engine/internal/misc/get-terrain-z.lua +11 -0
  72. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  73. package/engine/internal/misc/player-local-handle.lua +5 -0
  74. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  75. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  76. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  77. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  78. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  79. package/engine/internal/object-data/health-bonus.lua +16 -0
  80. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  81. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  82. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  83. package/engine/internal/object-data/mana-bonus.lua +16 -0
  84. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  85. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  86. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  87. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  88. package/engine/internal/unit/ability.d.ts +35 -0
  89. package/engine/internal/unit/ability.lua +98 -9
  90. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  91. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  92. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  93. package/engine/internal/unit/allowed-targets.lua +9 -1
  94. package/engine/internal/unit/appearance.d.ts +15 -0
  95. package/engine/internal/unit/appearance.lua +85 -0
  96. package/engine/internal/unit/attributes.d.ts +17 -0
  97. package/engine/internal/unit/attributes.lua +46 -0
  98. package/engine/internal/unit/bonus.d.ts +17 -0
  99. package/engine/internal/unit/bonus.lua +113 -8
  100. package/engine/internal/unit/buff.d.ts +2 -2
  101. package/engine/internal/unit/buff.lua +34 -19
  102. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  103. package/engine/internal/unit/equipment-inventory.lua +233 -0
  104. package/engine/internal/unit/expiration-timer.lua +1 -1
  105. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  106. package/engine/internal/unit/extended-inventory.lua +99 -0
  107. package/engine/internal/unit/fly-height.d.ts +7 -0
  108. package/engine/internal/unit/fly-height.lua +20 -0
  109. package/engine/internal/unit/ignore-events-items.lua +10 -1
  110. package/engine/internal/unit/interrupts.d.ts +12 -0
  111. package/engine/internal/unit/interrupts.lua +28 -0
  112. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  113. package/engine/internal/unit/inventory.lua +87 -0
  114. package/engine/internal/unit/item-container.d.ts +25 -0
  115. package/engine/internal/unit/item-container.lua +11 -0
  116. package/engine/internal/unit/item-order-events.d.ts +17 -0
  117. package/engine/internal/unit/item-order-events.lua +67 -0
  118. package/engine/internal/unit/item-slot.d.ts +27 -0
  119. package/engine/internal/unit/item-slot.lua +92 -0
  120. package/engine/internal/unit/main-selected.lua +12 -27
  121. package/engine/internal/unit/order.d.ts +20 -0
  122. package/engine/internal/unit/order.lua +136 -0
  123. package/engine/internal/unit/range-event.d.ts +12 -0
  124. package/engine/internal/unit/range-event.lua +90 -0
  125. package/engine/internal/unit/scale.d.ts +7 -0
  126. package/engine/internal/unit/scale.lua +20 -0
  127. package/engine/internal/unit+ability.d.ts +2 -1
  128. package/engine/internal/unit+ability.lua +73 -3
  129. package/engine/internal/unit+bonus.lua +3 -3
  130. package/engine/internal/unit+damage.d.ts +11 -11
  131. package/engine/internal/unit+damage.lua +43 -14
  132. package/engine/internal/unit+rally.lua +9 -31
  133. package/engine/internal/unit+spellSteal.lua +1 -2
  134. package/engine/internal/unit-missile-data.lua +58 -32
  135. package/engine/internal/unit-missile-launch.lua +65 -27
  136. package/engine/internal/unit.d.ts +41 -36
  137. package/engine/internal/unit.lua +398 -327
  138. package/engine/local-client.d.ts +28 -0
  139. package/engine/local-client.lua +324 -54
  140. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  141. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  142. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  143. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  144. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  145. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  146. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  147. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  148. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  149. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  150. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  151. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  152. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  153. package/engine/object-data/auxiliary/item-class.lua +2 -0
  154. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  155. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  156. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  157. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  158. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  159. package/engine/object-data/auxiliary/order-type.lua +2 -0
  160. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  161. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  162. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  163. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  164. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  165. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  166. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  167. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  168. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  169. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  170. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  171. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  172. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  173. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  174. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  175. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  176. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  177. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  178. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  179. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  180. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  181. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  182. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  183. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  184. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  185. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  186. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  187. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  188. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  189. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  190. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  191. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  192. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  193. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  194. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  195. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  196. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  197. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  198. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  199. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  200. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  201. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  202. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  203. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  204. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  205. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  206. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  207. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  208. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  209. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  210. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  211. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  212. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  213. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  214. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  215. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  216. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  217. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  218. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  219. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  220. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  221. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  222. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  223. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  224. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  225. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  226. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  227. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  228. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  229. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  230. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  231. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  232. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  233. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  234. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  235. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  236. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  237. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  238. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  239. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  240. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  241. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  242. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  243. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  244. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  245. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  246. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  247. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  248. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  249. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  250. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  251. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  252. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  253. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  254. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  255. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  256. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  257. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  258. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  259. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  260. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  261. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  262. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  263. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  264. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  265. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  266. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  267. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  268. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  269. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  270. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  271. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  272. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  273. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  274. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  275. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  276. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  277. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  278. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  279. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  280. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  281. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  282. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  283. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  284. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  285. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  286. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  287. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  288. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  289. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  290. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  291. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  292. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  293. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  294. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  295. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  296. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  297. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  298. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  299. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  300. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  301. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  302. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  303. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  304. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  305. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  306. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  307. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  308. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  309. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  310. package/engine/object-data/entry/ability-type/web.lua +52 -0
  311. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  312. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  313. package/engine/object-data/entry/ability-type.d.ts +40 -15
  314. package/engine/object-data/entry/ability-type.lua +314 -17
  315. package/engine/object-data/entry/buff-type/applicable.lua +113 -104
  316. package/engine/object-data/entry/buff-type.d.ts +10 -12
  317. package/engine/object-data/entry/buff-type.lua +37 -27
  318. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  319. package/engine/object-data/entry/destructible-type.lua +181 -0
  320. package/engine/object-data/entry/item-type.d.ts +18 -3
  321. package/engine/object-data/entry/item-type.lua +84 -0
  322. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  323. package/engine/object-data/entry/lightning-type.lua +1 -1
  324. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  325. package/engine/object-data/entry/unit-type.d.ts +74 -6
  326. package/engine/object-data/entry/unit-type.lua +560 -100
  327. package/engine/object-data/entry/upgrade.d.ts +2 -2
  328. package/engine/object-data/entry.d.ts +6 -1
  329. package/engine/object-data/entry.lua +8 -0
  330. package/engine/object-field/ability.d.ts +4 -4
  331. package/engine/object-field/ability.lua +9 -8
  332. package/engine/object-field/item.d.ts +22 -0
  333. package/engine/object-field/item.lua +118 -0
  334. package/engine/object-field/unit.d.ts +72 -3
  335. package/engine/object-field/unit.lua +268 -7
  336. package/engine/object-field.d.ts +26 -7
  337. package/engine/object-field.lua +360 -119
  338. package/engine/random.d.ts +10 -0
  339. package/engine/random.lua +21 -0
  340. package/engine/standard/entries/ability-type.d.ts +3102 -7
  341. package/engine/standard/entries/ability-type.lua +0 -6
  342. package/engine/standard/entries/buff-type.d.ts +48 -0
  343. package/engine/standard/entries/buff-type.lua +46 -0
  344. package/engine/standard/entries/item-type.d.ts +1299 -0
  345. package/engine/standard/entries/item-type.lua +2 -0
  346. package/engine/standard/entries/lightning-type.d.ts +42 -15
  347. package/engine/standard/entries/lightning-type.lua +0 -14
  348. package/engine/standard/entries/unit-type.d.ts +5 -0
  349. package/engine/standard/entries/unit-type.lua +5 -0
  350. package/engine/standard/fields/ability.d.ts +2 -2
  351. package/engine/standard/fields/ability.lua +2 -2
  352. package/engine/standard/fields/item.d.ts +4 -0
  353. package/engine/standard/fields/item.lua +6 -0
  354. package/engine/standard/fields/unit.d.ts +12 -0
  355. package/engine/standard/fields/unit.lua +20 -0
  356. package/engine/synchronization.d.ts +11 -0
  357. package/engine/synchronization.lua +77 -0
  358. package/engine/text-tag.d.ts +36 -2
  359. package/engine/text-tag.lua +250 -10
  360. package/engine/unit.d.ts +11 -1
  361. package/engine/unit.lua +11 -1
  362. package/event.d.ts +1 -1
  363. package/lualib_bundle.lua +1 -1
  364. package/math.d.ts +2 -0
  365. package/math.lua +14 -0
  366. package/net/socket.lua +1 -1
  367. package/network.lua +25 -1
  368. package/objutil/buff.lua +12 -11
  369. package/objutil/object.lua +1 -1
  370. package/operation.d.ts +8 -1
  371. package/operation.lua +38 -18
  372. package/package.json +3 -23
  373. package/patch-lua.lua +15 -0
  374. package/patch-lualib.lua +1 -1
  375. package/utility/arrays.d.ts +9 -1
  376. package/utility/arrays.lua +28 -0
  377. package/utility/callback-array.d.ts +17 -0
  378. package/utility/callback-array.lua +61 -0
  379. package/utility/functions.d.ts +8 -0
  380. package/utility/functions.lua +13 -0
  381. package/utility/linked-map.d.ts +35 -0
  382. package/utility/linked-map.lua +107 -0
  383. package/utility/linked-set.d.ts +5 -1
  384. package/utility/linked-set.lua +49 -1
  385. package/utility/lua-maps.d.ts +15 -2
  386. package/utility/lua-maps.lua +53 -2
  387. package/utility/lua-sets.d.ts +2 -0
  388. package/utility/lua-sets.lua +7 -0
  389. package/utility/random.d.ts +102 -0
  390. package/utility/random.lua +273 -0
  391. package/utility/records.lua +20 -1
  392. package/utility/types.d.ts +3 -0
  393. package/utility/unordered-map.d.ts +27 -0
  394. package/utility/unordered-map.lua +99 -0
  395. package/core/types/order.d.ts +0 -25
  396. package/core/types/order.lua +0 -55
  397. package/engine/internal/unit/item.lua +0 -78
  398. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  399. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  400. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  401. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,45 +1,97 @@
1
1
  local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
2
3
  local __TS__Class = ____lualib.__TS__Class
3
4
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
5
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
6
  local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
6
7
  local __TS__Delete = ____lualib.__TS__Delete
7
8
  local ____exports = {}
9
+ local invoke
8
10
  local ____handle = require("core.types.handle")
9
11
  local Handle = ____handle.Handle
10
12
  local ____color = require("core.types.color")
11
13
  local Color = ____color.Color
14
+ local ____event = require("event")
15
+ local Event = ____event.Event
16
+ local ____playerColor = require("core.types.playerColor")
17
+ local PlayerColor = ____playerColor.PlayerColor
12
18
  local ____rect = require("core.types.rect")
13
19
  local Rect = ____rect.Rect
14
20
  local ____ability = require("engine.internal.ability")
15
21
  local ItemAbility = ____ability.ItemAbility
16
22
  local ____ability = require("engine.internal.item.ability")
17
23
  local doAbilityAction = ____ability.doAbilityAction
24
+ local doAbilityActionForceDummy = ____ability.doAbilityActionForceDummy
25
+ local itemAbilityDummy = ____ability.itemAbilityDummy
18
26
  local ____dummy_2Ditem = require("engine.internal.object-data.dummy-item")
19
27
  local DUMMY_ITEM_ID = ____dummy_2Ditem.DUMMY_ITEM_ID
20
28
  local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
21
29
  local SLOT_FILLER_ITEM_TYPE_ID = ____add_2Ditem_2Dto_2Dslot.SLOT_FILLER_ITEM_TYPE_ID
22
30
  local ____vec2 = require("math.vec2")
23
31
  local distance = ____vec2.distance
24
- local itemAddAbility = BlzItemAddAbility
25
- local itemRemoveAbility = BlzItemRemoveAbility
26
- local getItemAbility = BlzGetItemAbility
27
- local isItemPowerup = IsItemPowerup
28
- local getItemAbilityByIndex = BlzGetItemAbilityByIndex
29
- local getAbilityId = BlzGetAbilityId
30
- local getWidgetLife = GetWidgetLife
31
- local removeItem = RemoveItem
32
- local getHandleId = GetHandleId
33
- local setRect = SetRect
32
+ local ____timer = require("core.types.timer")
33
+ local Timer = ____timer.Timer
34
+ local chooseRandomItemExWithFilter = ChooseRandomItemExWithFilter
35
+ local condition = Condition
36
+ local convertEquipmentType = ConvertEquipmentType
37
+ local convertItemTag = ConvertItemTag
38
+ local createTrigger = CreateTrigger
39
+ local destroyTrigger = DestroyTrigger
34
40
  local enumItemsInRect = EnumItemsInRect
41
+ local getAbilityId = BlzGetAbilityId
35
42
  local getEnumItem = GetEnumItem
43
+ local getHandleId = GetHandleId
44
+ local getItemAbility = BlzGetItemAbility
45
+ local getItemAbilityByIndex = BlzGetItemAbilityByIndex
46
+ local getItemBooleanField = BlzGetItemBooleanField
47
+ local getItemCharges = GetItemCharges
48
+ local getItemEquipmentType = GetItemEquipmentType
49
+ local getItemIntegerField = BlzGetItemIntegerField
50
+ local getItemTag = GetItemTag
36
51
  local getItemTypeId = GetItemTypeId
37
52
  local getItemX = GetItemX
38
53
  local getItemY = GetItemY
39
- local getItemIntegerField = BlzGetItemIntegerField
54
+ local getManipulatedItem = GetManipulatedItem
55
+ local getTriggerWidget = GetTriggerWidget
56
+ local getWidgetLife = GetWidgetLife
57
+ local isItemEquipped = IsItemEquipped
58
+ local isItemInBag = IsItemInBag
59
+ local isItemOwned = IsItemOwned
60
+ local isItemPawnable = IsItemPawnable
61
+ local isItemPowerup = IsItemPowerup
62
+ local itemAddAbility = BlzItemAddAbility
63
+ local itemRemoveAbility = BlzItemRemoveAbility
64
+ local loadItemHandle = LoadItemHandle
65
+ local removeItem = RemoveItem
66
+ local saveWidgetHandle = SaveWidgetHandle
40
67
  local setItemBooleanField = BlzSetItemBooleanField
41
- local getItemBooleanField = BlzGetItemBooleanField
68
+ local setItemCharges = SetItemCharges
69
+ local setItemColor = SetItemColor
70
+ local setItemDropOnDeath = SetItemDropOnDeath
71
+ local setItemDroppable = SetItemDroppable
72
+ local setItemPawnable = SetItemPawnable
73
+ local setRect = SetRect
74
+ local triggerAddCondition = TriggerAddCondition
75
+ local triggerRegisterDeathEvent = TriggerRegisterDeathEvent
76
+ local unitRemoveAbility = UnitRemoveAbility
77
+ local unitRemoveItem = UnitRemoveItem
78
+ local unitUseItem = UnitUseItem
79
+ local unitUseItemPoint = UnitUseItemPoint
80
+ local unitUseItemTarget = UnitUseItemTarget
81
+ local tableRemove = table.remove
82
+ local itemChargesChangeEvent = __TS__New(Event)
83
+ local itemDeathEvent = __TS__New(Event)
84
+ _G.SetItemCharges = function(whichItem, charges)
85
+ setItemCharges(whichItem, charges)
86
+ invoke(
87
+ itemChargesChangeEvent,
88
+ ____exports.Item:of(whichItem)
89
+ )
90
+ end
91
+ invoke = Event.invoke
42
92
  local enumRect = Rect:create(0, 0, 0, 0).handle
93
+ ---
94
+ -- @internal For use by internal systems only.
43
95
  ____exports.addAndGetAbility = function(handle, abilityTypeId)
44
96
  if itemAddAbility(handle, abilityTypeId) then
45
97
  return getItemAbility(handle, abilityTypeId)
@@ -65,6 +117,23 @@ local function getItemAbilities(handle, item)
65
117
  end
66
118
  return abilities
67
119
  end
120
+ local function consumeCharge(handle)
121
+ do
122
+ local i = 0
123
+ local ability = getItemAbilityByIndex(handle, i)
124
+ while ability ~= nil do
125
+ unitRemoveAbility(
126
+ itemAbilityDummy,
127
+ getAbilityId(ability)
128
+ )
129
+ do
130
+ i = i + 1
131
+ ability = getItemAbilityByIndex(handle, i)
132
+ end
133
+ end
134
+ end
135
+ return unitUseItem(itemAbilityDummy, handle) or unitUseItemPoint(itemAbilityDummy, handle, 0, 0) or unitUseItemTarget(itemAbilityDummy, handle, itemAbilityDummy)
136
+ end
68
137
  local targetCollection
69
138
  local targetCollectionNextIndex
70
139
  local centerX
@@ -91,63 +160,129 @@ local function collectIntoTargetRange()
91
160
  targetCollectionNextIndex = targetCollectionNextIndex + 1
92
161
  end
93
162
  end
163
+ local hashtable = InitHashtable()
164
+ local deathTriggerCondition = condition(function()
165
+ saveWidgetHandle(
166
+ hashtable,
167
+ 1,
168
+ 1,
169
+ getTriggerWidget()
170
+ )
171
+ local item = ____exports.Item:of(loadItemHandle(hashtable, 1, 1))
172
+ if item ~= nil then
173
+ invoke(itemDeathEvent, item)
174
+ end
175
+ end)
176
+ itemDeathEvent:addListener(
177
+ 999999,
178
+ function(item)
179
+ Timer:run(item, "destroy")
180
+ end
181
+ )
94
182
  ____exports.Item = __TS__Class()
95
183
  local Item = ____exports.Item
96
184
  Item.name = "Item"
97
185
  __TS__ClassExtends(Item, Handle)
98
186
  function Item.prototype.____constructor(self, handle)
99
187
  Handle.prototype.____constructor(self, handle)
100
- local abilities = doAbilityAction(handle, getItemAbilities, self)
101
- self[100] = abilities
102
- local luaIndexByAbilityTypeId = {}
103
- for i = 1, #abilities do
104
- luaIndexByAbilityTypeId[abilities[i].typeId] = i
105
- end
106
- self[101] = luaIndexByAbilityTypeId
188
+ self[100] = doAbilityAction(handle, getItemAbilities, self)
189
+ local deathTrigger = createTrigger()
190
+ triggerRegisterDeathEvent(deathTrigger, handle)
191
+ triggerAddCondition(deathTrigger, deathTriggerCondition)
192
+ self[101] = deathTrigger
107
193
  end
108
194
  function Item.prototype.onDestroy(self)
195
+ local owner = self.owner
196
+ if owner ~= nil then
197
+ unitRemoveItem(owner.handle, self.handle)
198
+ end
109
199
  local abilities = self[100]
110
200
  for i = 1, #abilities do
111
201
  abilities[i]:destroy()
112
202
  end
113
203
  removeItem(self.handle)
204
+ destroyTrigger(self[101])
114
205
  return Handle.prototype.onDestroy(self)
115
206
  end
116
207
  function Item.create(self, id, x, y, skinId)
117
208
  return self:of(BlzCreateItemWithSkin(id, x, y, skinId or id))
118
209
  end
210
+ function Item.getRandomTypeId(self, level, equipmentType, tag, itemType)
211
+ if tag == nil then
212
+ tag = 8
213
+ end
214
+ if itemType == nil then
215
+ itemType = ITEM_TYPE_ANY
216
+ end
217
+ local id = chooseRandomItemExWithFilter(
218
+ itemType,
219
+ level,
220
+ convertEquipmentType(equipmentType or 9),
221
+ convertItemTag(tag)
222
+ )
223
+ return id ~= 0 and id or nil
224
+ end
225
+ function Item.prototype.consumeCharge(self)
226
+ return self:consumeCharges(1)
227
+ end
228
+ function Item.prototype.consumeCharges(self, count)
229
+ local handle = self.handle
230
+ local charges = getItemCharges(handle)
231
+ if charges > count then
232
+ setItemCharges(handle, charges - count)
233
+ invoke(itemChargesChangeEvent, self)
234
+ return true
235
+ end
236
+ if charges == count then
237
+ if getItemBooleanField(handle, ITEM_BF_PERISHABLE) then
238
+ self:destroy()
239
+ return true
240
+ end
241
+ if not getItemBooleanField(handle, ITEM_BF_ACTIVELY_USED) then
242
+ setItemCharges(handle, 0)
243
+ invoke(itemChargesChangeEvent, self)
244
+ return true
245
+ end
246
+ setItemCharges(handle, 1)
247
+ local ____doAbilityActionForceDummy_2 = doAbilityActionForceDummy
248
+ local ____opt_0 = self.owner
249
+ ____doAbilityActionForceDummy_2(handle, ____opt_0 and ____opt_0.handle, consumeCharge)
250
+ invoke(itemChargesChangeEvent, self)
251
+ return true
252
+ end
253
+ return false
254
+ end
119
255
  function Item.prototype.addAbility(self, abilityTypeId)
120
256
  local nativeAbility = doAbilityAction(self.handle, ____exports.addAndGetAbility, abilityTypeId)
121
257
  if nativeAbility ~= nil then
122
258
  local ability = ItemAbility:of(nativeAbility, abilityTypeId, self)
123
259
  local abilities = self[100]
124
- local luaIndex = #abilities + 1
125
- abilities[luaIndex] = ability
126
- self[101][abilityTypeId] = luaIndex
260
+ abilities[#abilities + 1] = ability
127
261
  return ability
128
262
  end
129
263
  return nil
130
264
  end
131
265
  function Item.prototype.removeAbility(self, abilityTypeId)
132
- local luaIndexByAbilityTypeId = self[101]
133
- local luaIndex = luaIndexByAbilityTypeId[abilityTypeId]
134
- if luaIndex ~= nil and doAbilityAction(self.handle, itemRemoveAbility, abilityTypeId) then
135
- luaIndexByAbilityTypeId[abilityTypeId] = nil
136
- local abilities = self[100]
137
- abilities[luaIndex]:destroy()
138
- local abilityTypeIdsLength = #abilities
139
- for j = luaIndex, abilityTypeIdsLength do
140
- abilities[j] = abilities[j + 1]
266
+ local abilities = self[100]
267
+ for i = 1, #abilities do
268
+ if abilities[i].typeId == abilityTypeId then
269
+ local ability = abilities[i]
270
+ tableRemove(abilities, i)
271
+ ability:destroy()
272
+ return true
141
273
  end
142
274
  end
143
- return false
275
+ return doAbilityAction(self.handle, itemRemoveAbility, abilityTypeId)
144
276
  end
145
277
  function Item.prototype.hasAbility(self, abilityTypeId)
146
- return self[101][abilityTypeId] ~= nil
278
+ return doAbilityAction(self.handle, getItemAbility, abilityTypeId) ~= nil
147
279
  end
148
280
  function Item.prototype.getAbility(self, abilityTypeId)
149
- local ability = self[101][abilityTypeId] ~= nil and doAbilityAction(self.handle, getItemAbility, abilityTypeId)
150
- return ability and ItemAbility:of(ability, abilityTypeId, self) or nil
281
+ return ItemAbility:of(
282
+ doAbilityAction(self.handle, getItemAbility, abilityTypeId),
283
+ abilityTypeId,
284
+ self
285
+ )
151
286
  end
152
287
  function Item.getInRange(self, x, y, range)
153
288
  targetCollection = {}
@@ -171,6 +306,70 @@ function Item.getInRect(self, rect)
171
306
  enumItemsInRect(rect.handle, nil, collectIntoTarget)
172
307
  return targetCollection
173
308
  end
309
+ __TS__SetDescriptor(
310
+ Item.prototype,
311
+ "isOwned",
312
+ {get = function(self)
313
+ local handle = self.handle
314
+ return isItemOwned(handle) or isItemInBag(handle) or isItemEquipped(handle)
315
+ end},
316
+ true
317
+ )
318
+ __TS__SetDescriptor(
319
+ Item.prototype,
320
+ "isInInventory",
321
+ {get = function(self)
322
+ local handle = self.handle
323
+ return isItemOwned(handle) and not isItemInBag(handle) and not isItemEquipped(handle)
324
+ end},
325
+ true
326
+ )
327
+ __TS__SetDescriptor(
328
+ Item.prototype,
329
+ "isInExtendedInventory",
330
+ {get = function(self)
331
+ return isItemInBag(self.handle)
332
+ end},
333
+ true
334
+ )
335
+ __TS__SetDescriptor(
336
+ Item.prototype,
337
+ "isInEquipmentInventory",
338
+ {get = function(self)
339
+ return isItemEquipped(self.handle)
340
+ end},
341
+ true
342
+ )
343
+ __TS__SetDescriptor(
344
+ Item.prototype,
345
+ "equipmentType",
346
+ {get = function(self)
347
+ return getHandleId(getItemEquipmentType(self.handle))
348
+ end},
349
+ true
350
+ )
351
+ __TS__SetDescriptor(
352
+ Item.prototype,
353
+ "tag",
354
+ {get = function(self)
355
+ return getHandleId(getItemTag(self.handle))
356
+ end},
357
+ true
358
+ )
359
+ __TS__SetDescriptor(
360
+ Item.prototype,
361
+ "color",
362
+ {
363
+ get = function(self)
364
+ return self[102] or PlayerColor.red
365
+ end,
366
+ set = function(self, color)
367
+ setItemColor(self.handle, color.handle)
368
+ self[102] = color
369
+ end
370
+ },
371
+ true
372
+ )
174
373
  __TS__SetDescriptor(
175
374
  Item.prototype,
176
375
  "typeId",
@@ -259,65 +458,55 @@ __TS__SetDescriptor(
259
458
  )
260
459
  __TS__SetDescriptor(
261
460
  Item.prototype,
262
- "dropOnDeath",
461
+ "dropsOnDeath",
263
462
  {
264
463
  get = function(self)
265
- return BlzGetItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
464
+ return getItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
266
465
  end,
267
- set = function(self, v)
268
- SetItemDropOnDeath(self.handle, v)
466
+ set = function(self, dropsOnDeath)
467
+ setItemDropOnDeath(self.handle, dropsOnDeath)
269
468
  end
270
469
  },
271
470
  true
272
471
  )
273
472
  __TS__SetDescriptor(
274
473
  Item.prototype,
275
- "droppable",
474
+ "canBeDropped",
276
475
  {
277
476
  get = function(self)
278
- return BlzGetItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
477
+ return getItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
279
478
  end,
280
- set = function(self, v)
281
- SetItemDroppable(self.handle, v)
479
+ set = function(self, canBeDropped)
480
+ setItemDroppable(self.handle, canBeDropped)
282
481
  end
283
482
  },
284
483
  true
285
484
  )
286
485
  __TS__SetDescriptor(
287
486
  Item.prototype,
288
- "pawnable",
487
+ "perishes",
289
488
  {
290
489
  get = function(self)
291
- return IsItemPawnable(self.handle)
490
+ return getItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
292
491
  end,
293
- set = function(self, v)
294
- SetItemPawnable(self.handle, v)
295
- end
296
- },
297
- true
298
- )
299
- __TS__SetDescriptor(
300
- Item.prototype,
301
- "perishable",
302
- {
303
- get = function(self)
304
- return BlzGetItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
305
- end,
306
- set = function(self, v)
307
- BlzSetItemBooleanField(self.handle, ITEM_BF_PERISHABLE, v)
492
+ set = function(self, perishes)
493
+ local handle = self.handle
494
+ local powerUp = isItemPowerup(handle)
495
+ setItemBooleanField(handle, ITEM_BF_PERISHABLE, perishes)
496
+ setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerUp)
308
497
  end
309
498
  },
310
499
  true
311
500
  )
312
501
  __TS__SetDescriptor(
313
502
  Item.prototype,
314
- "powerup",
503
+ "isPowerUp",
315
504
  {
316
505
  get = function(self)
317
506
  return isItemPowerup(self.handle)
318
507
  end,
319
- set = function(self, v)
320
- setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, v)
508
+ set = function(self, isPowerUp)
509
+ setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, isPowerUp)
321
510
  end
322
511
  },
323
512
  true
@@ -351,22 +540,6 @@ __TS__SetDescriptor(
351
540
  },
352
541
  true
353
542
  )
354
- __TS__SetDescriptor(
355
- Item.prototype,
356
- "usable",
357
- {
358
- get = function(self)
359
- return getItemBooleanField(self.handle, ITEM_BF_ACTIVELY_USED)
360
- end,
361
- set = function(self, v)
362
- local handle = self.handle
363
- local powerup = isItemPowerup(handle)
364
- setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, v)
365
- setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerup)
366
- end
367
- },
368
- true
369
- )
370
543
  __TS__SetDescriptor(
371
544
  Item.prototype,
372
545
  "visible",
@@ -557,10 +730,11 @@ __TS__SetDescriptor(
557
730
  "charges",
558
731
  {
559
732
  get = function(self)
560
- return GetItemCharges(self.handle)
733
+ return getItemCharges(self.handle)
561
734
  end,
562
735
  set = function(self, v)
563
- SetItemCharges(self.handle, v)
736
+ setItemCharges(self.handle, v)
737
+ invoke(itemChargesChangeEvent, self)
564
738
  end
565
739
  },
566
740
  true
@@ -587,7 +761,8 @@ __TS__ObjectDefineProperty(
587
761
  return self.onDestroyEvent
588
762
  end}
589
763
  )
590
- local getManipulatedItem = GetManipulatedItem
764
+ Item.deathEvent = itemDeathEvent
765
+ Item.chargesChangedEvent = itemChargesChangeEvent
591
766
  local trigger = CreateTrigger()
592
767
  TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_PICKUP_ITEM)
593
768
  TriggerAddAction(
@@ -8,6 +8,6 @@ local DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD = ____ability.DURATION_NORMAL_AB
8
8
  -- @internal For use by internal systems only.
9
9
  ____exports.getAbilityDuration = function(ability, target)
10
10
  local level = ability.level
11
- return target ~= nil and target:hasClassification(UnitClassification.RESISTANT) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
11
+ return target ~= nil and (target.isHero or target:getField(UNIT_IF_LEVEL) >= 6 or target:hasClassification(UnitClassification.RESISTANT)) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
12
12
  end
13
13
  return ____exports
@@ -74,9 +74,12 @@ ____exports.castAbility = function(nativeUnit, abilityTypeId, prepareAbility, ..
74
74
  unitRemoveAbility(nativeUnit, INVENTORY_ABILITY_TYPE_ID)
75
75
  if latestInventoryAbilityTypeId ~= 0 then
76
76
  unitAddAbility(nativeUnit, latestInventoryAbilityTypeId)
77
- for slot, nativeItem in pairs(nativeItemBySlot) do
78
- unitAddItem(nativeUnit, nativeItem)
79
- unitDropItemSlot(nativeUnit, nativeItem, slot)
77
+ for slot = 0, inventorySize - 1 do
78
+ local nativeItem = nativeItemBySlot[slot]
79
+ if nativeItem ~= nil then
80
+ unitAddItem(nativeUnit, nativeItem)
81
+ unitDropItemSlot(nativeUnit, nativeItem, slot)
82
+ end
80
83
  end
81
84
  end
82
85
  end
@@ -0,0 +1,5 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal For use by internal systems only.
4
+ ____exports.damageMetadataByTarget = setmetatable({}, {__mode = "k"})
5
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -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()
@@ -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