warscript 0.0.1-dev.d750e38 → 0.0.1-dev.d77b529

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