warscript 0.0.1-dev.29b3feb → 0.0.1-dev.29e90d8

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 (459) 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 +24 -6
  7. package/core/types/effect.lua +169 -107
  8. package/core/types/frame.d.ts +21 -2
  9. package/core/types/frame.lua +165 -87
  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/missile.lua +6 -11
  14. package/core/types/player.d.ts +18 -1
  15. package/core/types/player.lua +76 -26
  16. package/core/types/playerCamera.d.ts +2 -0
  17. package/core/types/playerCamera.lua +123 -5
  18. package/core/types/playerColor.lua +4 -3
  19. package/core/types/sound.d.ts +18 -25
  20. package/core/types/sound.lua +113 -33
  21. package/core/types/tileCell.d.ts +18 -3
  22. package/core/types/tileCell.lua +108 -0
  23. package/core/types/timer.d.ts +9 -8
  24. package/core/types/timer.lua +45 -23
  25. package/core/types/unit.d.ts +5 -0
  26. package/core/types/unit.lua +5 -0
  27. package/core/util.d.ts +3 -1
  28. package/core/util.lua +121 -4
  29. package/decl/native.d.ts +1719 -964
  30. package/destroyable.d.ts +1 -0
  31. package/destroyable.lua +9 -0
  32. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  33. package/engine/ability-type-extended-tooltip.lua +44 -0
  34. package/engine/behavior.d.ts +14 -1
  35. package/engine/behavior.lua +230 -70
  36. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  37. package/engine/behaviour/ability/always-enabled.lua +31 -0
  38. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  39. package/engine/behaviour/ability/apply-buff.lua +36 -4
  40. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  41. package/engine/behaviour/ability/damage.d.ts +15 -4
  42. package/engine/behaviour/ability/damage.lua +41 -49
  43. package/engine/behaviour/ability/emulate-impact.d.ts +20 -0
  44. package/engine/behaviour/ability/emulate-impact.lua +117 -0
  45. package/engine/behaviour/ability/instant-impact.d.ts +14 -3
  46. package/engine/behaviour/ability/instant-impact.lua +20 -20
  47. package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
  48. package/engine/behaviour/ability/on-command-impact.lua +26 -0
  49. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  50. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  51. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  52. package/engine/behaviour/ability/restore-mana.lua +6 -6
  53. package/engine/behaviour/ability.d.ts +36 -7
  54. package/engine/behaviour/ability.lua +218 -43
  55. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  56. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  57. package/engine/behaviour/unit.d.ts +41 -2
  58. package/engine/behaviour/unit.lua +270 -6
  59. package/engine/buff.d.ts +148 -60
  60. package/engine/buff.lua +706 -310
  61. package/engine/index.d.ts +2 -1
  62. package/engine/internal/ability.d.ts +27 -3
  63. package/engine/internal/ability.lua +174 -32
  64. package/engine/internal/item/ability.lua +162 -4
  65. package/engine/internal/item/fields.d.ts +12 -0
  66. package/engine/internal/item/fields.lua +33 -0
  67. package/engine/internal/item/owner-cache.d.ts +5 -0
  68. package/engine/internal/item/owner-cache.lua +4 -0
  69. package/engine/internal/item+owner.d.ts +2 -0
  70. package/engine/internal/item+owner.lua +37 -8
  71. package/engine/internal/item.d.ts +34 -18
  72. package/engine/internal/item.lua +308 -102
  73. package/engine/internal/mechanics/ability-duration.lua +1 -1
  74. package/engine/internal/mechanics/cast-ability.lua +6 -3
  75. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  76. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  77. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  78. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  79. package/engine/internal/misc/frame-coordinates.lua +21 -0
  80. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  81. package/engine/internal/misc/get-terrain-z.lua +11 -0
  82. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  83. package/engine/internal/misc/player-local-handle.lua +5 -0
  84. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  85. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  86. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  87. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  88. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  89. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  90. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  91. package/engine/internal/object-data/evasion-probability.lua +16 -0
  92. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  93. package/engine/internal/object-data/health-bonus.lua +16 -0
  94. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  95. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  96. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  97. package/engine/internal/object-data/mana-bonus.lua +16 -0
  98. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  99. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  100. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  101. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  102. package/engine/internal/unit/ability.d.ts +45 -1
  103. package/engine/internal/unit/ability.lua +144 -17
  104. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  105. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  106. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  107. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  108. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  109. package/engine/internal/unit/allowed-targets.lua +9 -1
  110. package/engine/internal/unit/appearance.d.ts +15 -0
  111. package/engine/internal/unit/appearance.lua +85 -0
  112. package/engine/internal/unit/attributes.d.ts +17 -0
  113. package/engine/internal/unit/attributes.lua +46 -0
  114. package/engine/internal/unit/bonus.d.ts +19 -0
  115. package/engine/internal/unit/bonus.lua +130 -8
  116. package/engine/internal/unit/buff.d.ts +2 -2
  117. package/engine/internal/unit/buff.lua +34 -19
  118. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  119. package/engine/internal/unit/equipment-inventory.lua +233 -0
  120. package/engine/internal/unit/expiration-timer.lua +1 -1
  121. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  122. package/engine/internal/unit/extended-inventory.lua +99 -0
  123. package/engine/internal/unit/fly-height.d.ts +7 -0
  124. package/engine/internal/unit/fly-height.lua +20 -0
  125. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  126. package/engine/internal/unit/ignore-events-items.lua +14 -0
  127. package/engine/internal/unit/interrupts.d.ts +12 -0
  128. package/engine/internal/unit/interrupts.lua +28 -0
  129. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  130. package/engine/internal/unit/inventory.lua +87 -0
  131. package/engine/internal/unit/item-container.d.ts +25 -0
  132. package/engine/internal/unit/item-container.lua +11 -0
  133. package/engine/internal/unit/item-order-events.d.ts +17 -0
  134. package/engine/internal/unit/item-order-events.lua +67 -0
  135. package/engine/internal/unit/item-slot.d.ts +27 -0
  136. package/engine/internal/unit/item-slot.lua +92 -0
  137. package/engine/internal/unit/main-selected.d.ts +6 -0
  138. package/engine/internal/unit/main-selected.lua +18 -22
  139. package/engine/internal/unit/order.d.ts +20 -0
  140. package/engine/internal/unit/order.lua +136 -0
  141. package/engine/internal/unit/range-event.d.ts +12 -0
  142. package/engine/internal/unit/range-event.lua +90 -0
  143. package/engine/internal/unit/scale.d.ts +7 -0
  144. package/engine/internal/unit/scale.lua +20 -0
  145. package/engine/internal/unit/shared-vision-counter.d.ts +18 -0
  146. package/engine/internal/unit/shared-vision-counter.lua +31 -0
  147. package/engine/internal/unit+ability.d.ts +2 -1
  148. package/engine/internal/unit+ability.lua +83 -3
  149. package/engine/internal/unit+bonus.lua +3 -3
  150. package/engine/internal/unit+damage.d.ts +12 -38
  151. package/engine/internal/unit+damage.lua +48 -45
  152. package/engine/internal/unit+rally.lua +9 -31
  153. package/engine/internal/unit+spellSteal.lua +1 -2
  154. package/engine/internal/unit-missile-data.lua +96 -68
  155. package/engine/internal/unit-missile-launch.lua +69 -27
  156. package/engine/internal/unit.d.ts +52 -34
  157. package/engine/internal/unit.lua +468 -321
  158. package/engine/internal/utility.lua +12 -0
  159. package/engine/lightning.d.ts +12 -5
  160. package/engine/lightning.lua +52 -18
  161. package/engine/local-client.d.ts +28 -0
  162. package/engine/local-client.lua +324 -54
  163. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  164. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  165. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  166. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  167. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  168. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  169. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  170. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  171. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  172. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  173. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  174. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  175. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  176. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  177. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  178. package/engine/object-data/auxiliary/item-class.lua +2 -0
  179. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  180. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  181. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  182. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  183. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  184. package/engine/object-data/auxiliary/order-type.lua +2 -0
  185. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  186. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  187. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  188. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  189. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  190. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  191. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  192. package/engine/object-data/auxiliary/weapon-sound-type.d.ts +20 -14
  193. package/engine/object-data/auxiliary/weapon-sound-type.lua +58 -0
  194. package/engine/object-data/auxiliary/weapon-type.d.ts +25 -0
  195. package/engine/object-data/auxiliary/weapon-type.lua +2 -0
  196. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  197. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  198. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  199. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  200. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  201. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  202. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  203. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  204. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  205. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  206. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  207. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  208. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  209. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  210. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  211. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  212. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  213. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  214. package/engine/object-data/entry/ability-type/blank-configurable.lua +14 -3
  215. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  216. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  217. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  218. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  219. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  220. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  221. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  222. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  223. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  224. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  225. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  226. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  227. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  228. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  229. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  230. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  231. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  232. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  233. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  234. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  235. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  236. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  237. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  238. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  239. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  240. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  241. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  242. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  243. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  244. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  245. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  246. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  247. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  248. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  249. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  250. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  251. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  252. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  253. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  254. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  255. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  256. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  257. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  258. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  259. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  260. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  261. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  262. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  263. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  264. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  265. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  266. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  267. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  268. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  269. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  270. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  271. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  272. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  273. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  274. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  275. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  276. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  277. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  278. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  279. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  280. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  281. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  282. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  283. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  284. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  285. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  286. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  287. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  288. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  289. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  290. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  291. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  292. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  293. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  294. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  295. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  296. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  297. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  298. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  299. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  300. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  301. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  302. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  303. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  304. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  305. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  306. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  307. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  308. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  309. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  310. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  311. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  312. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  313. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  314. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  315. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  316. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  317. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  318. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  319. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  320. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  321. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  322. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  323. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  324. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  325. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  326. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  327. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  328. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  329. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  330. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  331. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  332. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  333. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  334. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  335. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  336. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  337. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  338. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  339. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  340. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  341. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  342. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  343. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  344. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  345. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  346. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  347. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  348. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  349. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  350. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  351. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  352. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  353. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  354. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  355. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  356. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  357. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  358. package/engine/object-data/entry/ability-type/web.lua +52 -0
  359. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  360. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  361. package/engine/object-data/entry/ability-type.d.ts +50 -21
  362. package/engine/object-data/entry/ability-type.lua +392 -47
  363. package/engine/object-data/entry/buff-type/applicable.lua +131 -139
  364. package/engine/object-data/entry/buff-type.d.ts +10 -12
  365. package/engine/object-data/entry/buff-type.lua +39 -29
  366. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  367. package/engine/object-data/entry/destructible-type.lua +181 -0
  368. package/engine/object-data/entry/item-type.d.ts +20 -3
  369. package/engine/object-data/entry/item-type.lua +99 -2
  370. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  371. package/engine/object-data/entry/lightning-type.lua +1 -1
  372. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  373. package/engine/object-data/entry/sound-preset.lua +140 -0
  374. package/engine/object-data/entry/unit-type.d.ts +81 -6
  375. package/engine/object-data/entry/unit-type.lua +619 -99
  376. package/engine/object-data/entry/upgrade.d.ts +2 -2
  377. package/engine/object-data/entry/upgrade.lua +4 -4
  378. package/engine/object-data/entry.d.ts +21 -14
  379. package/engine/object-data/entry.lua +68 -32
  380. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  381. package/engine/object-field/ability.d.ts +12 -6
  382. package/engine/object-field/ability.lua +10 -6
  383. package/engine/object-field/item.d.ts +22 -0
  384. package/engine/object-field/item.lua +118 -0
  385. package/engine/object-field/unit.d.ts +72 -3
  386. package/engine/object-field/unit.lua +268 -7
  387. package/engine/object-field.d.ts +26 -7
  388. package/engine/object-field.lua +362 -117
  389. package/engine/random.d.ts +10 -0
  390. package/engine/random.lua +21 -0
  391. package/engine/standard/entries/ability-type.d.ts +3102 -7
  392. package/engine/standard/entries/ability-type.lua +0 -6
  393. package/engine/standard/entries/buff-type.d.ts +48 -0
  394. package/engine/standard/entries/buff-type.lua +46 -0
  395. package/engine/standard/entries/item-type.d.ts +1299 -0
  396. package/engine/standard/entries/item-type.lua +2 -0
  397. package/engine/standard/entries/lightning-type.d.ts +42 -15
  398. package/engine/standard/entries/lightning-type.lua +0 -14
  399. package/engine/standard/entries/sound-preset.d.ts +10 -0
  400. package/engine/standard/entries/sound-preset.lua +10 -0
  401. package/engine/standard/entries/unit-type.d.ts +5 -0
  402. package/engine/standard/entries/unit-type.lua +5 -0
  403. package/engine/standard/fields/ability.d.ts +6 -4
  404. package/engine/standard/fields/ability.lua +6 -4
  405. package/engine/standard/fields/item.d.ts +4 -0
  406. package/engine/standard/fields/item.lua +6 -0
  407. package/engine/standard/fields/unit.d.ts +12 -0
  408. package/engine/standard/fields/unit.lua +20 -0
  409. package/engine/synchronization.d.ts +11 -0
  410. package/engine/synchronization.lua +77 -0
  411. package/engine/text-tag.d.ts +48 -2
  412. package/engine/text-tag.lua +287 -10
  413. package/engine/unit.d.ts +13 -1
  414. package/engine/unit.lua +13 -1
  415. package/event.d.ts +1 -1
  416. package/lualib_bundle.lua +1 -1
  417. package/math.d.ts +2 -0
  418. package/math.lua +14 -0
  419. package/net/socket.lua +1 -1
  420. package/network.lua +25 -1
  421. package/objutil/buff.lua +12 -11
  422. package/objutil/object.lua +1 -1
  423. package/objutil/unit.lua +8 -0
  424. package/operation.d.ts +8 -1
  425. package/operation.lua +38 -18
  426. package/package.json +3 -23
  427. package/patch-lua.lua +15 -0
  428. package/patch-lualib.lua +1 -1
  429. package/patch-natives.lua +3 -0
  430. package/utility/arrays.d.ts +17 -2
  431. package/utility/arrays.lua +62 -3
  432. package/utility/callback-array.d.ts +17 -0
  433. package/utility/callback-array.lua +61 -0
  434. package/utility/functions.d.ts +8 -0
  435. package/utility/functions.lua +13 -0
  436. package/utility/lazy.d.ts +2 -0
  437. package/utility/lazy.lua +14 -0
  438. package/utility/linked-map.d.ts +35 -0
  439. package/utility/linked-map.lua +107 -0
  440. package/utility/linked-set.d.ts +5 -1
  441. package/utility/linked-set.lua +49 -1
  442. package/utility/lua-maps.d.ts +15 -2
  443. package/utility/lua-maps.lua +53 -2
  444. package/utility/lua-sets.d.ts +2 -0
  445. package/utility/lua-sets.lua +7 -0
  446. package/utility/random.d.ts +102 -0
  447. package/utility/random.lua +273 -0
  448. package/utility/records.lua +20 -1
  449. package/utility/reflection.lua +11 -7
  450. package/utility/types.d.ts +3 -0
  451. package/utility/unordered-map.d.ts +27 -0
  452. package/utility/unordered-map.lua +99 -0
  453. package/core/types/order.d.ts +0 -25
  454. package/core/types/order.lua +0 -55
  455. package/engine/internal/unit/item.lua +0 -84
  456. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  457. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  458. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  459. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -9,43 +9,85 @@ local ____timer = require("core.types.timer")
9
9
  local Timer = ____timer.Timer
10
10
  local ____lua_2Dsets = require("utility.lua-sets")
11
11
  local luaSetOf = ____lua_2Dsets.luaSetOf
12
+ local ____attributes = require("attributes")
13
+ local attribute = ____attributes.attribute
14
+ local ____linked_2Dset = require("utility.linked-set")
15
+ local LinkedSet = ____linked_2Dset.LinkedSet
16
+ local ____math = require("math")
17
+ local ceil = ____math.ceil
12
18
  local autoAttackFinishEvent = __TS__New(Event)
13
19
  rawset(Unit, "autoAttackFinishEvent", autoAttackFinishEvent)
14
- local eventTimerByUnit = {}
20
+ local units = __TS__New(LinkedSet)
21
+ local targetAttribute = attribute()
22
+ local impactDelayAttribute = attribute()
23
+ local passedTimeAttribute = attribute()
15
24
  local instantOrderIds = luaSetOf(
16
- orderId("avatar"),
17
- orderId("berserk"),
18
- orderId("divineshield"),
19
- orderId("immolation"),
20
- orderId("moveslot0"),
21
- orderId("moveslot1"),
22
- orderId("moveslot2"),
23
- orderId("moveslot3"),
24
- orderId("moveslot4"),
25
- orderId("moveslot5"),
26
- orderId("unavatar"),
27
- orderId("undivineshield"),
28
- orderId("unimmolation")
25
+ 852086,
26
+ 852100,
27
+ 852090,
28
+ 852177,
29
+ 852002,
30
+ 852003,
31
+ 852004,
32
+ 852005,
33
+ 852006,
34
+ 852007,
35
+ 852087,
36
+ 852091,
37
+ 852178
29
38
  )
30
- local function reset(source, orderId)
39
+ ---
40
+ -- @internal For use by internal systems only.
41
+ ____exports.resetAutoAttackTimer = function(unit)
42
+ if units:remove(unit) then
43
+ unit[targetAttribute] = nil
44
+ unit[impactDelayAttribute] = nil
45
+ unit[passedTimeAttribute] = nil
46
+ end
47
+ end
48
+ local function reset(unit, orderId)
31
49
  if not (instantOrderIds[orderId] ~= nil) then
32
- local eventTimer = eventTimerByUnit[source]
33
- if eventTimer then
34
- eventTimer:destroy()
35
- eventTimerByUnit[source] = nil
36
- end
50
+ ____exports.resetAutoAttackTimer(unit)
37
51
  end
38
52
  end
39
53
  Unit.onImmediateOrder:addListener(reset)
40
54
  Unit.onPointOrder:addListener(reset)
41
55
  Unit.onTargetOrder:addListener(reset)
42
- local function timerCallback(source, target)
43
- eventTimerByUnit[source] = nil
44
- Event.invoke(autoAttackFinishEvent, source, target)
56
+ local timerPeriod = 1 / 64
57
+ local function invokeEvent(unit)
58
+ units:remove(unit)
59
+ local target = unit[targetAttribute]
60
+ unit[targetAttribute] = nil
61
+ unit[impactDelayAttribute] = nil
62
+ unit[passedTimeAttribute] = nil
63
+ Event.invoke(autoAttackFinishEvent, unit, target)
45
64
  end
46
- Unit.autoAttackStartEvent:addListener(function(source, target)
47
- local attackPoint = source.weapons[1].impactDelay
48
- local timer = Timer:simple(attackPoint, timerCallback, source, target)
49
- eventTimerByUnit[source] = timer
65
+ local function checkUnit(unit)
66
+ local passedTime = unit[passedTimeAttribute]
67
+ if passedTime == nil then
68
+ return
69
+ end
70
+ passedTime = passedTime + timerPeriod
71
+ local impactDelay = unit[impactDelayAttribute]
72
+ if passedTime >= impactDelay and ceil(passedTime / 0.02) >= ceil(impactDelay / 0.02) then
73
+ invokeEvent(unit)
74
+ else
75
+ unit[passedTimeAttribute] = passedTime
76
+ end
77
+ end
78
+ Timer.onPeriod[timerPeriod]:addListener(function()
79
+ units:forEach(checkUnit)
50
80
  end)
81
+ Unit.autoAttackStartEvent:addListener(
82
+ 999999,
83
+ function(source, target)
84
+ if source[targetAttribute] ~= nil then
85
+ invokeEvent(source)
86
+ end
87
+ source[targetAttribute] = target
88
+ source[impactDelayAttribute] = (source:chooseWeapon(target) or source.firstWeapon).impactDelay
89
+ source[passedTimeAttribute] = -timerPeriod
90
+ units:add(source)
91
+ end
92
+ )
51
93
  return ____exports
@@ -11,6 +11,12 @@ import { Ability, UnitAbility } from "./ability";
11
11
  import { Widget } from "../../core/types/widget";
12
12
  import type { UnitTypeId } from "../object-data/entry/unit-type";
13
13
  import { CombatClassification, CombatClassifications } from "../object-data/auxiliary/combat-classification";
14
+ import { MovementType } from "../object-data/auxiliary/movement-type";
15
+ import { WeaponType } from "../object-data/auxiliary/weapon-type";
16
+ import { WeaponSoundType } from "../object-data/auxiliary/weapon-sound-type";
17
+ import { UnitAttribute } from "../object-data/auxiliary/unit-attribute";
18
+ import { AttackType } from "../object-data/auxiliary/attack-type";
19
+ import { AttributesHolder } from "../../attributes";
14
20
  export type UnitClassification = junittype;
15
21
  export declare namespace UnitClassification {
16
22
  const STRUCTURE: junittype;
@@ -19,6 +25,7 @@ export declare namespace UnitClassification {
19
25
  const GROUND: junittype;
20
26
  const SUMMONED: junittype;
21
27
  const MECHANICAL: junittype;
28
+ const WORKER: junittype;
22
29
  const ANCIENT: junittype;
23
30
  const SUICIDAL: junittype;
24
31
  const TAUREN: junittype;
@@ -36,15 +43,18 @@ type AbilityDispatcherTable<T extends any[] = []> = {
36
43
  readonly [id: number]: Event<[Unit, Ability, ...T]>;
37
44
  };
38
45
  type AbilityEventDispatcher<T extends any[] = []> = Event<[Unit, Ability, ...T]> & AbilityDispatcherTable<T>;
39
- export interface DamagingEvent {
46
+ export interface DamagingEvent extends AttributesHolder {
40
47
  amount: number;
41
- attackType: jattacktype;
48
+ attackType: AttackType;
42
49
  damageType: jdamagetype;
43
- weaponType: jweapontype;
50
+ weaponSoundType: WeaponSoundType;
51
+ metadata: unknown;
44
52
  readonly isAttack: boolean;
45
53
  readonly originalAmount: number;
54
+ readonly originalMetadata: unknown;
55
+ preventRetaliation(this: DamagingEvent): void;
46
56
  }
47
- export type DamageEvent = DamagingEvent & {
57
+ export type DamageEvent = Omit<DamagingEvent, "preventRetaliation"> & {
48
58
  preventDeath<P extends any[]>(this: DamageEvent, callback: (this: void, ...parameters: P) => any, ...parameters: P): void;
49
59
  };
50
60
  export type AttackDamageEvent = DamagingEvent & {
@@ -72,10 +82,18 @@ export declare class UnitWeapon {
72
82
  readonly unit: Unit;
73
83
  readonly index: 0 | 1;
74
84
  constructor(unit: Unit, index: 0 | 1);
85
+ get isEnabled(): boolean;
86
+ set isEnabled(isEnabled: boolean);
75
87
  get cooldown(): number;
76
88
  set cooldown(cooldown: number);
77
89
  get damage(): [minimumDamage: number, maximumDamage: number];
78
90
  set damage([minimumDamage, maximumDamage]: [number, number]);
91
+ get allowedTargetCombatClassifications(): CombatClassifications;
92
+ set allowedTargetCombatClassifications(allowedTargetCombatClassifications: CombatClassifications);
93
+ get type(): WeaponType;
94
+ set type(type: WeaponType);
95
+ get soundType(): WeaponSoundType;
96
+ set soundType(soundType: WeaponSoundType);
79
97
  get damageBase(): number;
80
98
  set damageBase(damageBase: number);
81
99
  get damageDiceCount(): number;
@@ -97,10 +115,13 @@ declare const enum UnitPropertyKey {
97
115
  SYNC_ID = 100,
98
116
  IS_PAUSED = 101,
99
117
  STUN_COUNTER = 102,
100
- DELAY_HEALTH_CHECKS_COUNTER = 103,
101
- DELAY_HEALTH_CHECKS_HEALTH_BONUS = 104,
102
- PREVENT_DEATH_HEALTH_BONUS = 105,
103
- IS_TEAM_GLOW_HIDDEN = 106
118
+ FORCE_STUN_COUNTER = 103,
119
+ DELAY_HEALTH_CHECKS_COUNTER = 104,
120
+ DELAY_HEALTH_CHECKS_HEALTH_BONUS = 105,
121
+ PREVENT_DEATH_HEALTH_BONUS = 106,
122
+ IS_TEAM_GLOW_HIDDEN = 107,
123
+ LAST_X = 108,
124
+ LAST_Y = 109
104
125
  }
105
126
  export type UnitSyncId = number & {
106
127
  readonly __unitSyncId: unique symbol;
@@ -109,10 +130,13 @@ export declare class Unit extends Handle<junit> {
109
130
  readonly syncId: UnitSyncId;
110
131
  private [UnitPropertyKey.IS_PAUSED]?;
111
132
  private [UnitPropertyKey.STUN_COUNTER]?;
133
+ private [UnitPropertyKey.FORCE_STUN_COUNTER]?;
112
134
  private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
113
135
  private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
114
136
  private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
115
137
  private [UnitPropertyKey.IS_TEAM_GLOW_HIDDEN]?;
138
+ private [UnitPropertyKey.LAST_X]?;
139
+ private [UnitPropertyKey.LAST_Y]?;
116
140
  private _owner?;
117
141
  private _timeScale?;
118
142
  private events?;
@@ -121,6 +145,7 @@ export declare class Unit extends Handle<junit> {
121
145
  private _fields?;
122
146
  private getEvent;
123
147
  constructor(handle: junit);
148
+ private saveData;
124
149
  protected onDestroy(): HandleDestructor;
125
150
  addAttackHandler(condition: AttackHandlerCondition, action: AttackHandlerAction): AttackHandler;
126
151
  removeAttackHandler(handler: AttackHandler): boolean;
@@ -133,6 +158,7 @@ export declare class Unit extends Handle<junit> {
133
158
  get isAlive(): boolean;
134
159
  get isDead(): boolean;
135
160
  get isIllusion(): boolean;
161
+ get isStunned(): boolean;
136
162
  get combatClassifications(): CombatClassifications;
137
163
  set combatClassifications(combatClassifications: CombatClassifications);
138
164
  hasCombatClassification(combatClassification: CombatClassification): boolean;
@@ -142,29 +168,26 @@ export declare class Unit extends Handle<junit> {
142
168
  isVisibleTo(player: Player): boolean;
143
169
  isInvisibleTo(player: Player): boolean;
144
170
  isInRangeOf(x: number, y: number, range: number): boolean;
145
- isInRangeOf(unit: Unit, range: number): boolean;
171
+ isInRangeOf(widget: Widget, range: number): boolean;
146
172
  isAllyOf(unit: Unit): boolean;
147
173
  isEnemyOf(unit: Unit): boolean;
148
- playAnimation(animation: string, rarity?: jraritycontrol): void;
149
- playAnimation(animation: number): void;
174
+ playAnimation(...parameters: [animation: number] | [animation: string, rarity?: jraritycontrol]): void;
175
+ resetAnimation(): void;
150
176
  queueAnimation(animation: string): void;
151
177
  get weapons(): [UnitWeapon, UnitWeapon];
152
178
  get firstWeapon(): UnitWeapon;
153
179
  get secondWeapon(): UnitWeapon;
180
+ chooseWeapon(target: Unit): UnitWeapon | undefined;
154
181
  get level(): number;
155
182
  set level(v: number);
156
183
  get xp(): number;
157
184
  set xp(v: number);
158
- get strengthBase(): number;
159
- set strengthBase(strengthBase: number);
185
+ get primaryAttribute(): UnitAttribute;
186
+ set primaryAttribute(primaryAttribute: UnitAttribute);
160
187
  get strengthBonus(): number;
161
188
  get strength(): number;
162
- get agilityBase(): number;
163
- set agilityBase(agilityBase: number);
164
189
  get agilityBonus(): number;
165
190
  get agility(): number;
166
- get intelligenceBase(): number;
167
- set intelligenceBase(intelligenceBase: number);
168
191
  get intelligenceBonus(): number;
169
192
  get intelligence(): number;
170
193
  get name(): string;
@@ -198,8 +221,6 @@ export declare class Unit extends Handle<junit> {
198
221
  set facing(v: number);
199
222
  get speed(): number;
200
223
  set speed(v: number);
201
- get flyHeight(): number;
202
- set flyHeight(v: number);
203
224
  get x(): number;
204
225
  set x(v: number);
205
226
  get y(): number;
@@ -223,12 +244,12 @@ export declare class Unit extends Handle<junit> {
223
244
  get isInvulnerable(): boolean;
224
245
  get vertexColor(): Color;
225
246
  set vertexColor(v: Color);
226
- get scale(): number;
227
- set scale(v: number);
228
247
  get timeScale(): number;
229
248
  set timeScale(v: number);
230
249
  get collisionSize(): number;
231
250
  get pathingCollisionRange(): number;
251
+ get movementType(): MovementType;
252
+ set movementType(movementType: MovementType);
232
253
  set pathing(v: boolean);
233
254
  isSelected(player: Player): boolean;
234
255
  explode(): void;
@@ -246,18 +267,17 @@ export declare class Unit extends Handle<junit> {
246
267
  dropItemTarget(item: Item, target: Widget): boolean;
247
268
  dropItemSlot(item: Item, slot: number): boolean;
248
269
  itemInSlot(slot: number): Item | null;
249
- addAbility(abilityId: number): UnitAbility | null;
270
+ addAbility(abilityId: number): UnitAbility | undefined;
250
271
  makeAbilityPermanent(abilityId: number, permanent: true): boolean;
251
272
  setAbilityLevel(abilityId: number, level: number): number;
252
273
  getAbilityLevel(abilityId: number): number;
253
274
  hasAbility(abilityId: number): boolean;
254
- getAbilityById(abilityId: number): UnitAbility | undefined;
255
- removeAbility(abilityId: number): boolean;
275
+ getAbility(abilityId: number): UnitAbility | undefined;
276
+ removeAbility(abilityTypeId: number): boolean;
256
277
  hideAbility(abilityId: number, flag: boolean): void;
257
278
  getAbilityRemainingCooldown(abilityId: number): number;
258
279
  startAbilityCooldown(abilityId: number, cooldown: number): void;
259
280
  endAbilityCooldown(abilityId: number): void;
260
- interruptAttack(): void;
261
281
  interruptCast(abilityId: number): void;
262
282
  getDistanceTo(target: Unit | Vec2): number;
263
283
  getCollisionDistanceTo(...target: [Unit] | [targetX: number, targetY: number]): number;
@@ -271,14 +291,16 @@ export declare class Unit extends Handle<junit> {
271
291
  unpauseEx(): void;
272
292
  incrementStunCounter(): void;
273
293
  decrementStunCounter(): void;
294
+ incrementForceStunCounter(): void;
295
+ decrementForceStunCounter(): void;
274
296
  set waygateActive(v: boolean);
275
297
  get waygateActive(): boolean;
276
298
  set waygateDestination(v: Vec2);
277
299
  get waygateDestination(): Vec2;
278
300
  get abilities(): ReadonlyArray<UnitAbility>;
279
- get onUnitInRange(): Record<number, Event<[Unit]>>;
280
301
  get onManaEqual(): Record<number, Event<[Unit, number]>>;
281
302
  get manaEvent(): Record<Operator, Record<number, Event<[Unit]>>>;
303
+ get targetAcquiredEvent(): Event;
282
304
  get onSelect(): Event;
283
305
  get onDeselect(): Event;
284
306
  get onImmediateOrder(): Event<[number]>;
@@ -294,6 +316,7 @@ export declare class Unit extends Handle<junit> {
294
316
  static getInCollisionRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
295
317
  static getInSector(pos: Vec2, range: number, offsetAngle: number, centralAngle: number): Unit[];
296
318
  static getSelectionOf(player: Player, target?: Unit[]): Unit[];
319
+ static readonly levelChangedEvent: UnitTriggerEvent<[]>;
297
320
  static readonly deathEvent: UnitTriggerEvent<[Unit]>;
298
321
  static readonly onDecay: UnitTriggerEvent<[]>;
299
322
  static readonly onResurrect: InitializingEvent<[Unit], void>;
@@ -304,7 +327,7 @@ export declare class Unit extends Handle<junit> {
304
327
  static readonly constructionStartEvent: UnitTriggerEvent<[]>;
305
328
  static readonly onUpgradeFinish: UnitTriggerEvent<[]>;
306
329
  static readonly onSpellEffect: EventDispatcher<[Unit, number], [Unit]>;
307
- static readonly onTargetCast: EventDispatcher<[Unit, number, Item | Unit | Destructable], [Unit, Item | Unit | Destructable]>;
330
+ static readonly onTargetCast: EventDispatcher<[Unit, number, Destructable | Unit | Item], [Unit, Destructable | Unit | Item]>;
308
331
  static readonly onCastPrepare: AbilityEventDispatcher<[]>;
309
332
  static readonly onCast: AbilityEventDispatcher<[]>;
310
333
  static readonly onPointCastPrepare: AbilityEventDispatcher<[number, number]>;
@@ -331,13 +354,7 @@ export declare class Unit extends Handle<junit> {
331
354
  static itemDroppedEvent: UnitTriggerEvent<[Item]>;
332
355
  static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
333
356
  static itemUsedEvent: UnitTriggerEvent<[Item]>;
334
- static itemStackedEvent: UnitTriggerEvent<[Item]>;
335
- static get itemMovedEvent(): Event<[
336
- unit: Unit,
337
- item: Item,
338
- slotFrom: 0 | 1 | 2 | 3 | 4 | 5,
339
- slotTo: 0 | 1 | 2 | 3 | 4 | 5
340
- ]>;
357
+ static get itemChargesChangedEvent(): Event<[unit: Unit, item: Item]>;
341
358
  static get onCreate(): EventDispatcher<[Unit], [Unit]>;
342
359
  static get destroyEvent(): EventDispatcher<[Unit], [Unit]>;
343
360
  getField(field: junitintegerfield | junitrealfield): number;
@@ -349,5 +366,6 @@ export declare class Unit extends Handle<junit> {
349
366
  setField(field: junitstringfield, value: string): boolean;
350
367
  toString(): string;
351
368
  static getBySyncId(syncId: UnitSyncId): Unit | undefined;
369
+ static synchronize: (player: Player, object: Unit | undefined) => Promise<Unit | undefined>;
352
370
  }
353
371
  export {};