warscript 0.0.1-dev.3370e98 → 0.0.1-dev.33b52d0

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 (367) hide show
  1. package/attributes.d.ts +1 -0
  2. package/attributes.lua +9 -0
  3. package/core/dummy.lua +4 -2
  4. package/core/types/effect.d.ts +11 -1
  5. package/core/types/effect.lua +43 -77
  6. package/core/types/frame.d.ts +16 -2
  7. package/core/types/frame.lua +131 -65
  8. package/core/types/handle.lua +9 -9
  9. package/core/types/item.d.ts +1 -0
  10. package/core/types/item.lua +1 -0
  11. package/core/types/missile.lua +8 -7
  12. package/core/types/player.d.ts +18 -1
  13. package/core/types/player.lua +73 -25
  14. package/core/types/playerCamera.lua +44 -0
  15. package/core/types/playerColor.lua +4 -3
  16. package/core/types/sound.d.ts +1 -1
  17. package/core/types/sound.lua +14 -9
  18. package/core/types/tileCell.d.ts +18 -3
  19. package/core/types/tileCell.lua +108 -0
  20. package/core/types/timer.d.ts +3 -2
  21. package/core/types/timer.lua +22 -2
  22. package/core/types/unit.d.ts +5 -0
  23. package/core/types/unit.lua +5 -0
  24. package/core/util.d.ts +3 -1
  25. package/core/util.lua +109 -3
  26. package/decl/native.d.ts +708 -9
  27. package/destroyable.d.ts +1 -0
  28. package/destroyable.lua +9 -0
  29. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  30. package/engine/ability-type-extended-tooltip.lua +44 -0
  31. package/engine/behavior.d.ts +12 -1
  32. package/engine/behavior.lua +199 -65
  33. package/engine/behaviour/ability/apply-buff.lua +4 -4
  34. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  35. package/engine/behaviour/ability/damage.d.ts +4 -0
  36. package/engine/behaviour/ability/damage.lua +19 -15
  37. package/engine/behaviour/ability/emulate-impact.d.ts +14 -0
  38. package/engine/behaviour/ability/emulate-impact.lua +79 -5
  39. package/engine/behaviour/ability/instant-impact.d.ts +12 -1
  40. package/engine/behaviour/ability/instant-impact.lua +17 -2
  41. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  42. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  43. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  44. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  45. package/engine/behaviour/ability.d.ts +19 -6
  46. package/engine/behaviour/ability.lua +120 -9
  47. package/engine/behaviour/unit/stun-immunity.d.ts +9 -5
  48. package/engine/behaviour/unit/stun-immunity.lua +17 -7
  49. package/engine/behaviour/unit.d.ts +16 -5
  50. package/engine/behaviour/unit.lua +127 -22
  51. package/engine/buff.d.ts +112 -57
  52. package/engine/buff.lua +558 -300
  53. package/engine/index.d.ts +2 -1
  54. package/engine/internal/ability.d.ts +10 -1
  55. package/engine/internal/ability.lua +91 -45
  56. package/engine/internal/item/fields.d.ts +12 -0
  57. package/engine/internal/item/fields.lua +33 -0
  58. package/engine/internal/item/owner-cache.d.ts +5 -0
  59. package/engine/internal/item/owner-cache.lua +4 -0
  60. package/engine/internal/item+owner.d.ts +2 -0
  61. package/engine/internal/item+owner.lua +27 -4
  62. package/engine/internal/item.d.ts +27 -14
  63. package/engine/internal/item.lua +185 -82
  64. package/engine/internal/mechanics/cast-ability.lua +6 -3
  65. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  66. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  67. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  68. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  69. package/engine/internal/object-data/health-bonus.lua +16 -0
  70. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  71. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  72. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  73. package/engine/internal/object-data/mana-bonus.lua +16 -0
  74. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  75. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  76. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  77. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  78. package/engine/internal/unit/ability.d.ts +14 -14
  79. package/engine/internal/unit/ability.lua +88 -45
  80. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  81. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  82. package/engine/internal/unit/appearance.d.ts +15 -0
  83. package/engine/internal/unit/appearance.lua +85 -0
  84. package/engine/internal/unit/attributes.d.ts +17 -0
  85. package/engine/internal/unit/attributes.lua +46 -0
  86. package/engine/internal/unit/bonus.d.ts +17 -0
  87. package/engine/internal/unit/bonus.lua +113 -8
  88. package/engine/internal/unit/buff.d.ts +2 -2
  89. package/engine/internal/unit/buff.lua +34 -19
  90. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  91. package/engine/internal/unit/equipment-inventory.lua +233 -0
  92. package/engine/internal/unit/expiration-timer.lua +1 -1
  93. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  94. package/engine/internal/unit/extended-inventory.lua +99 -0
  95. package/engine/internal/unit/fly-height.d.ts +7 -0
  96. package/engine/internal/unit/fly-height.lua +20 -0
  97. package/engine/internal/unit/ignore-events-items.lua +10 -1
  98. package/engine/internal/unit/interrupts.d.ts +12 -0
  99. package/engine/internal/unit/interrupts.lua +28 -0
  100. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  101. package/engine/internal/unit/inventory.lua +87 -0
  102. package/engine/internal/unit/item-container.d.ts +25 -0
  103. package/engine/internal/unit/item-container.lua +11 -0
  104. package/engine/internal/unit/item-order-events.d.ts +17 -0
  105. package/engine/internal/unit/item-order-events.lua +67 -0
  106. package/engine/internal/unit/item-slot.d.ts +27 -0
  107. package/engine/internal/unit/item-slot.lua +92 -0
  108. package/engine/internal/unit/main-selected.lua +12 -27
  109. package/engine/internal/unit/order.d.ts +3 -3
  110. package/engine/internal/unit/order.lua +10 -10
  111. package/engine/internal/unit/range-event.d.ts +12 -0
  112. package/engine/internal/unit/range-event.lua +90 -0
  113. package/engine/internal/unit/scale.d.ts +7 -0
  114. package/engine/internal/unit/scale.lua +20 -0
  115. package/engine/internal/unit+ability.d.ts +2 -1
  116. package/engine/internal/unit+ability.lua +82 -2
  117. package/engine/internal/unit+bonus.lua +3 -3
  118. package/engine/internal/unit+damage.d.ts +9 -0
  119. package/engine/internal/unit+damage.lua +33 -0
  120. package/engine/internal/unit+rally.lua +9 -31
  121. package/engine/internal/unit-missile-data.lua +96 -68
  122. package/engine/internal/unit-missile-launch.lua +64 -33
  123. package/engine/internal/unit.d.ts +19 -31
  124. package/engine/internal/unit.lua +221 -293
  125. package/engine/lightning.lua +4 -4
  126. package/engine/local-client.d.ts +28 -0
  127. package/engine/local-client.lua +324 -54
  128. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  129. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  130. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  131. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  132. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  133. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  134. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  135. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  136. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  137. package/engine/object-data/auxiliary/item-class.lua +2 -0
  138. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  139. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  140. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  141. package/engine/object-data/auxiliary/order-type.lua +2 -0
  142. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  143. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  144. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  145. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  146. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  147. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  148. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  149. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  150. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  151. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  152. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  153. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  154. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  155. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  156. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  157. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  158. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  159. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  160. package/engine/object-data/entry/ability-type/blank-configurable.lua +2 -2
  161. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  162. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  163. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  164. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  165. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  166. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  167. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  168. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  169. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  170. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  171. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  172. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  173. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  174. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  175. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  176. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  177. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  178. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  179. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  180. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  181. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  182. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  183. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  184. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  185. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  186. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  187. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  188. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  189. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  190. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  191. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  192. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  193. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  194. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  195. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  196. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  197. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  198. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  199. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  200. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  201. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  202. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  203. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  204. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  205. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  206. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  207. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  208. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  209. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  210. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  211. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  212. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  213. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  214. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  215. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  216. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  217. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  218. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  219. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  220. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  221. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  222. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  223. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  224. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  225. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  226. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  227. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  228. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  229. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  230. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  231. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  232. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  233. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  234. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  235. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  236. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  237. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  238. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  239. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  240. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  241. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  242. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  243. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  244. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  245. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  246. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  247. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  248. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  249. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  250. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  251. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  252. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  253. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  254. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  255. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  256. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  257. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  258. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  259. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  260. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  261. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  262. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  263. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  264. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  265. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  266. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  267. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  268. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  269. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  270. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  271. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  272. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  273. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  274. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  275. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  276. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  277. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  278. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  279. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  280. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  281. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  282. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  283. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  284. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  285. package/engine/object-data/entry/ability-type.d.ts +35 -8
  286. package/engine/object-data/entry/ability-type.lua +303 -12
  287. package/engine/object-data/entry/buff-type/applicable.lua +122 -111
  288. package/engine/object-data/entry/buff-type.d.ts +6 -2
  289. package/engine/object-data/entry/buff-type.lua +26 -0
  290. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  291. package/engine/object-data/entry/destructible-type.lua +181 -0
  292. package/engine/object-data/entry/item-type.d.ts +18 -3
  293. package/engine/object-data/entry/item-type.lua +84 -0
  294. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  295. package/engine/object-data/entry/lightning-type.lua +1 -1
  296. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  297. package/engine/object-data/entry/unit-type.d.ts +61 -2
  298. package/engine/object-data/entry/unit-type.lua +444 -52
  299. package/engine/object-data/entry/upgrade.d.ts +2 -2
  300. package/engine/object-data/entry.d.ts +6 -1
  301. package/engine/object-data/entry.lua +8 -0
  302. package/engine/object-field/ability.d.ts +3 -3
  303. package/engine/object-field/ability.lua +9 -8
  304. package/engine/object-field/item.d.ts +22 -0
  305. package/engine/object-field/item.lua +118 -0
  306. package/engine/object-field/unit.d.ts +20 -5
  307. package/engine/object-field/unit.lua +61 -0
  308. package/engine/object-field.d.ts +12 -4
  309. package/engine/object-field.lua +273 -126
  310. package/engine/random.d.ts +10 -0
  311. package/engine/random.lua +21 -0
  312. package/engine/standard/entries/ability-type.d.ts +3102 -7
  313. package/engine/standard/entries/ability-type.lua +0 -6
  314. package/engine/standard/entries/buff-type.d.ts +45 -0
  315. package/engine/standard/entries/buff-type.lua +43 -0
  316. package/engine/standard/entries/item-type.d.ts +1299 -0
  317. package/engine/standard/entries/item-type.lua +2 -0
  318. package/engine/standard/entries/lightning-type.d.ts +42 -15
  319. package/engine/standard/entries/lightning-type.lua +0 -14
  320. package/engine/standard/entries/unit-type.d.ts +5 -0
  321. package/engine/standard/entries/unit-type.lua +5 -0
  322. package/engine/standard/fields/ability.d.ts +4 -4
  323. package/engine/standard/fields/ability.lua +4 -4
  324. package/engine/standard/fields/item.d.ts +4 -0
  325. package/engine/standard/fields/item.lua +6 -0
  326. package/engine/standard/fields/unit.d.ts +11 -3
  327. package/engine/standard/fields/unit.lua +15 -2
  328. package/engine/synchronization.d.ts +11 -0
  329. package/engine/synchronization.lua +77 -0
  330. package/engine/text-tag.d.ts +13 -1
  331. package/engine/text-tag.lua +77 -37
  332. package/engine/unit.d.ts +10 -1
  333. package/engine/unit.lua +10 -1
  334. package/event.d.ts +1 -1
  335. package/lualib_bundle.lua +1 -1
  336. package/math.d.ts +2 -0
  337. package/math.lua +14 -0
  338. package/net/socket.lua +1 -1
  339. package/network.lua +25 -1
  340. package/objutil/buff.lua +11 -9
  341. package/objutil/object.lua +1 -1
  342. package/operation.d.ts +8 -1
  343. package/operation.lua +38 -18
  344. package/package.json +3 -23
  345. package/patch-lua.lua +15 -0
  346. package/patch-lualib.lua +1 -1
  347. package/utility/arrays.d.ts +8 -1
  348. package/utility/arrays.lua +25 -0
  349. package/utility/callback-array.d.ts +17 -0
  350. package/utility/callback-array.lua +61 -0
  351. package/utility/linked-map.d.ts +35 -0
  352. package/utility/linked-map.lua +107 -0
  353. package/utility/linked-set.d.ts +4 -1
  354. package/utility/linked-set.lua +46 -1
  355. package/utility/lua-maps.d.ts +11 -2
  356. package/utility/lua-maps.lua +33 -2
  357. package/utility/random.d.ts +102 -0
  358. package/utility/random.lua +273 -0
  359. package/utility/records.lua +20 -1
  360. package/utility/types.d.ts +3 -0
  361. package/utility/unordered-map.d.ts +27 -0
  362. package/utility/unordered-map.lua +99 -0
  363. package/engine/internal/unit/item.lua +0 -78
  364. /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
  365. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  366. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  367. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -1,16 +1,43 @@
1
1
  /** @noSelfInFile */
2
- import { StandardLightningTypeId } from "../../object-data/entry/lightning-type";
3
- export declare const AERIAL_SHACKLES_LIGHTNING_TYPE_ID: StandardLightningTypeId;
4
- export declare const CHAIN_LIGHTNING_PRIMARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
5
- export declare const CHAIN_LIGHTNING_SECONDARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
6
- export declare const DRAIN_LIFE_LIGHTNING_TYPE_ID: StandardLightningTypeId;
7
- export declare const DRAIN_LIFE_AND_MANA_LIGHTNING_TYPE_ID: StandardLightningTypeId;
8
- export declare const DRAIN_MANA_LIGHTNING_TYPE_ID: StandardLightningTypeId;
9
- export declare const FINGER_OF_DEATH_LIGHTNING_TYPE_ID: StandardLightningTypeId;
10
- export declare const FORKED_LIGHTNING_LIGHTNING_TYPE_ID: StandardLightningTypeId;
11
- export declare const HEALING_WAVE_PRIMARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
12
- export declare const HEALING_WAVE_SECONDARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
13
- export declare const LIGHTNING_ATTACK_LIGHTNING_TYPE_ID: StandardLightningTypeId;
14
- export declare const MANA_BURN_LIGHTNING_TYPE_ID: StandardLightningTypeId;
15
- export declare const MANA_FLARE_LIGHTNING_TYPE_ID: StandardLightningTypeId;
16
- export declare const SPIRIT_LINK_LIGHTNING_TYPE_ID: StandardLightningTypeId;
2
+ export declare const enum StandardLightningTypeId {
3
+ /** `LEAS` */
4
+ AERIAL_SHACKLES = 1279607123,
5
+ /** `VLCG` */
6
+ CHAIN_LIGHTNING_GOLD = 1447838535,
7
+ /** `CLPB` */
8
+ CHAIN_LIGHTNING_PRIMARY = 1129074754,
9
+ /** `CLSB` */
10
+ CHAIN_LIGHTNING_SECONDARY = 1129075522,
11
+ /** `DRAL` */
12
+ DRAIN_LIFE = 1146241356,
13
+ /** `DRAB` */
14
+ DRAIN_LIFE_AND_MANA = 1146241346,
15
+ /** `DRAM` */
16
+ DRAIN_MANA = 1146241357,
17
+ /** `AFOD` */
18
+ FINGER_OF_DEATH = 1095126852,
19
+ /** `FORK` */
20
+ FORKED_LIGHTNING = 1179603531,
21
+ /** `HWPB` */
22
+ HEALING_WAVE_PRIMARY = 1213681730,
23
+ /** `HWSB` */
24
+ HEALING_WAVE_SECONDARY = 1213682498,
25
+ /** `INIT` */
26
+ INIT = 1229867348,
27
+ /** `DRWL` */
28
+ LIFE_WAVE = 1146246988,
29
+ /** `CHIM` */
30
+ LIGHTNING_ATTACK = 1128810829,
31
+ /** `MBUR` */
32
+ MANA_BURN = 1296192850,
33
+ /** `MFPB` */
34
+ MANA_FLARE = 1296453698,
35
+ /** `DRWM` */
36
+ MANA_WAVE = 1146246989,
37
+ /** `POSS` */
38
+ POSSESSION = 1347375955,
39
+ /** `VLST` */
40
+ SOUL_TETHER = 1447842644,
41
+ /** `SPLK` */
42
+ SPIRIT_LINK = 1397771339
43
+ }
@@ -1,16 +1,2 @@
1
1
  local ____exports = {}
2
- ____exports.AERIAL_SHACKLES_LIGHTNING_TYPE_ID = fourCC("LEAS")
3
- ____exports.CHAIN_LIGHTNING_PRIMARY_LIGHTNING_TYPE_ID = fourCC("CLPB")
4
- ____exports.CHAIN_LIGHTNING_SECONDARY_LIGHTNING_TYPE_ID = fourCC("CLSB")
5
- ____exports.DRAIN_LIFE_LIGHTNING_TYPE_ID = fourCC("DRAL")
6
- ____exports.DRAIN_LIFE_AND_MANA_LIGHTNING_TYPE_ID = fourCC("DRAB")
7
- ____exports.DRAIN_MANA_LIGHTNING_TYPE_ID = fourCC("DRAM")
8
- ____exports.FINGER_OF_DEATH_LIGHTNING_TYPE_ID = fourCC("AFOD")
9
- ____exports.FORKED_LIGHTNING_LIGHTNING_TYPE_ID = fourCC("FORK")
10
- ____exports.HEALING_WAVE_PRIMARY_LIGHTNING_TYPE_ID = fourCC("HWPB")
11
- ____exports.HEALING_WAVE_SECONDARY_LIGHTNING_TYPE_ID = fourCC("HWSB")
12
- ____exports.LIGHTNING_ATTACK_LIGHTNING_TYPE_ID = fourCC("CHIM")
13
- ____exports.MANA_BURN_LIGHTNING_TYPE_ID = fourCC("MBUR")
14
- ____exports.MANA_FLARE_LIGHTNING_TYPE_ID = fourCC("MFPB")
15
- ____exports.SPIRIT_LINK_LIGHTNING_TYPE_ID = fourCC("SPLK")
16
2
  return ____exports
@@ -15,6 +15,7 @@ export declare const MOUNTAIN_KING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
15
  export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
16
  export declare const ARCHER_HIGH_ELF_UNIT_TYPE_ID: StandardUnitTypeId;
17
17
  export declare const CAPTAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
+ export declare const CHAPLAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
19
  export declare const SWORDSMAN_UNIT_TYPE_ID: StandardUnitTypeId;
19
20
  export declare const ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
20
21
  export declare const ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
@@ -47,6 +48,7 @@ export declare const SPIRIT_WALKER_UNIT_TYPE_ID: StandardUnitTypeId;
47
48
  export declare const TAUREN_UNIT_TYPE_ID: StandardUnitTypeId;
48
49
  export declare const WIND_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
49
50
  export declare const WITCH_DOCTOR_UNIT_TYPE_ID: StandardUnitTypeId;
51
+ export declare const BLADEMASTER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
50
52
  export declare const ARCHER_UNIT_TYPE_ID: StandardUnitTypeId;
51
53
  export declare const CHIMAERA_UNIT_TYPE_ID: StandardUnitTypeId;
52
54
  export declare const DRUID_OF_THE_CLAW_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -67,9 +69,11 @@ export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnit
67
69
  export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
68
70
  export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
69
71
  export declare const DEATH_KNIGHT_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
72
+ export declare const DREADLORD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
70
73
  export declare const ZOMBIE_UNIT_TYPE_ID: StandardUnitTypeId;
71
74
  export declare const ZOMBIE_FEMALE_UNIT_TYPE_ID: StandardUnitTypeId;
72
75
  export declare const ARTHAS_EVIL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
76
+ export declare const MAL_GANIS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
73
77
  export declare const DIRE_MAMMOTH_UNIT_TYPE_ID: StandardUnitTypeId;
74
78
  export declare const ELDER_JUNGLE_STALKER_UNIT_TYPE_ID: StandardUnitTypeId;
75
79
  export declare const ENRAGED_ELEMENTAL_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -98,6 +102,7 @@ export declare const WENDIGO_UNIT_TYPE_ID: StandardUnitTypeId;
98
102
  export declare const WENDIGO_SHAMAN_UNIT_TYPE_ID: StandardUnitTypeId;
99
103
  export declare const WILDKIN_UNIT_TYPE_ID: StandardUnitTypeId;
100
104
  export declare const WRAITH_UNIT_TYPE_ID: StandardUnitTypeId;
105
+ export declare const PIT_LORD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
101
106
  export declare const GOBLIN_LAND_MINE_UNIT_TYPE_ID: StandardUnitTypeId;
102
107
  export declare const CIRCLE_OF_POWER_UNIT_TYPE_ID: StandardUnitTypeId;
103
108
  export declare const CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -14,6 +14,7 @@ ____exports.MOUNTAIN_KING_HERO_UNIT_TYPE_ID = fourCC("Hmkg")
14
14
  ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
15
15
  ____exports.ARCHER_HIGH_ELF_UNIT_TYPE_ID = fourCC("nhea")
16
16
  ____exports.CAPTAIN_UNIT_TYPE_ID = fourCC("hcth")
17
+ ____exports.CHAPLAIN_UNIT_TYPE_ID = fourCC("nchp")
17
18
  ____exports.SWORDSMAN_UNIT_TYPE_ID = fourCC("hhes")
18
19
  ____exports.ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID = fourCC("Hapm")
19
20
  ____exports.ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID = fourCC("Hssa")
@@ -46,6 +47,7 @@ ____exports.SPIRIT_WALKER_UNIT_TYPE_ID = fourCC("ospw")
46
47
  ____exports.TAUREN_UNIT_TYPE_ID = fourCC("otau")
47
48
  ____exports.WIND_RIDER_UNIT_TYPE_ID = fourCC("owyv")
48
49
  ____exports.WITCH_DOCTOR_UNIT_TYPE_ID = fourCC("odoc")
50
+ ____exports.BLADEMASTER_HERO_UNIT_TYPE_ID = fourCC("Obla")
49
51
  ____exports.ARCHER_UNIT_TYPE_ID = fourCC("earc")
50
52
  ____exports.CHIMAERA_UNIT_TYPE_ID = fourCC("echm")
51
53
  ____exports.DRUID_OF_THE_CLAW_UNIT_TYPE_ID = fourCC("edoc")
@@ -66,9 +68,11 @@ ____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
66
68
  ____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
67
69
  ____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
68
70
  ____exports.DEATH_KNIGHT_HERO_UNIT_TYPE_ID = fourCC("Udea")
71
+ ____exports.DREADLORD_HERO_UNIT_TYPE_ID = fourCC("Udre")
69
72
  ____exports.ZOMBIE_UNIT_TYPE_ID = fourCC("nzom")
70
73
  ____exports.ZOMBIE_FEMALE_UNIT_TYPE_ID = fourCC("nzof")
71
74
  ____exports.ARTHAS_EVIL_HERO_UNIT_TYPE_ID = fourCC("Uear")
75
+ ____exports.MAL_GANIS_HERO_UNIT_TYPE_ID = fourCC("Umal")
72
76
  ____exports.DIRE_MAMMOTH_UNIT_TYPE_ID = fourCC("nmdr")
73
77
  ____exports.ELDER_JUNGLE_STALKER_UNIT_TYPE_ID = fourCC("njga")
74
78
  ____exports.ENRAGED_ELEMENTAL_UNIT_TYPE_ID = fourCC("nele")
@@ -97,6 +101,7 @@ ____exports.WENDIGO_UNIT_TYPE_ID = fourCC("nwen")
97
101
  ____exports.WENDIGO_SHAMAN_UNIT_TYPE_ID = fourCC("nwns")
98
102
  ____exports.WILDKIN_UNIT_TYPE_ID = fourCC("nowb")
99
103
  ____exports.WRAITH_UNIT_TYPE_ID = fourCC("ngh2")
104
+ ____exports.PIT_LORD_HERO_UNIT_TYPE_ID = fourCC("Nplh")
100
105
  ____exports.GOBLIN_LAND_MINE_UNIT_TYPE_ID = fourCC("nglm")
101
106
  ____exports.CIRCLE_OF_POWER_UNIT_TYPE_ID = fourCC("ncop")
102
107
  ____exports.CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID = fourCC("ncp2")
@@ -7,8 +7,8 @@ export declare const BUTTON_POSITION_ACTIVATED_Y_ABILITY_INTEGER_FIELD: AbilityI
7
7
  export declare const BUTTON_POSITION_RESEARCH_X_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
8
8
  export declare const BUTTON_POSITION_RESEARCH_Y_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
9
9
  export declare const MISSILE_SPEED_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
10
- export declare const TARGET_ATTACHMENTS_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
11
- export declare const CASTER_ATTACHMENTS_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
10
+ export declare const TARGET_EFFECT_COUNT_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
11
+ export declare const CASTER_EFFECT_COUNT_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
12
12
  export declare const PRIORITY_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
13
13
  export declare const LEVELS_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
14
14
  export declare const REQUIRED_LEVEL_ABILITY_INTEGER_FIELD: AbilityIntegerField & symbol;
@@ -376,8 +376,8 @@ export declare const INVISIBILITY_TRANSITION_TIME_ABILITY_FLOAT_LEVEL_FIELD: Abi
376
376
  export declare const ACTIVATION_RADIUS_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
377
377
  export declare const AMOUNT_REGENERATED_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
378
378
  export declare const DAMAGE_PER_SECOND_POI1_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
379
- export declare const ATTACK_SPEED_FACTOR_POI2_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
380
- export declare const MOVEMENT_SPEED_FACTOR_POI3_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
379
+ export declare const MOVEMENT_SPEED_FACTOR_POI2_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
380
+ export declare const ATTACK_SPEED_FACTOR_POI3_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
381
381
  export declare const EXTRA_DAMAGE_POA1_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
382
382
  export declare const DAMAGE_PER_SECOND_POA2_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
383
383
  export declare const ATTACK_SPEED_FACTOR_POA3_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
@@ -18,8 +18,8 @@ ____exports.BUTTON_POSITION_ACTIVATED_Y_ABILITY_INTEGER_FIELD = AbilityIntegerFi
18
18
  ____exports.BUTTON_POSITION_RESEARCH_X_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("arpx"))
19
19
  ____exports.BUTTON_POSITION_RESEARCH_Y_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("arpy"))
20
20
  ____exports.MISSILE_SPEED_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("amsp"))
21
- ____exports.TARGET_ATTACHMENTS_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("atac"))
22
- ____exports.CASTER_ATTACHMENTS_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("acac"))
21
+ ____exports.TARGET_EFFECT_COUNT_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("atac"))
22
+ ____exports.CASTER_EFFECT_COUNT_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("acac"))
23
23
  ____exports.PRIORITY_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("apri"))
24
24
  ____exports.LEVELS_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("alev"))
25
25
  ____exports.REQUIRED_LEVEL_ABILITY_INTEGER_FIELD = AbilityIntegerField:create(fourCC("arlv"))
@@ -387,8 +387,8 @@ ____exports.INVISIBILITY_TRANSITION_TIME_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloa
387
387
  ____exports.ACTIVATION_RADIUS_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Neu1"))
388
388
  ____exports.AMOUNT_REGENERATED_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Arm1"))
389
389
  ____exports.DAMAGE_PER_SECOND_POI1_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi1"))
390
- ____exports.ATTACK_SPEED_FACTOR_POI2_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi2"))
391
- ____exports.MOVEMENT_SPEED_FACTOR_POI3_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi3"))
390
+ ____exports.MOVEMENT_SPEED_FACTOR_POI2_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi2"))
391
+ ____exports.ATTACK_SPEED_FACTOR_POI3_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi3"))
392
392
  ____exports.EXTRA_DAMAGE_POA1_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poa1"))
393
393
  ____exports.DAMAGE_PER_SECOND_POA2_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poa2"))
394
394
  ____exports.ATTACK_SPEED_FACTOR_POA3_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poa3"))
@@ -0,0 +1,4 @@
1
+ /** @noSelfInFile */
2
+ import { ItemBooleanField } from "../../object-field/item";
3
+ export declare const CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD: ItemBooleanField & symbol;
4
+ export declare const IS_ACTIVELY_USED_ITEM_FIELD: ItemBooleanField & symbol;
@@ -0,0 +1,6 @@
1
+ local ____exports = {}
2
+ local ____item = require("engine.object-field.item")
3
+ local ItemBooleanField = ____item.ItemBooleanField
4
+ ____exports.CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD = ItemBooleanField:create(fourCC("ipaw"))
5
+ ____exports.IS_ACTIVELY_USED_ITEM_FIELD = ItemBooleanField:create(fourCC("iusa"))
6
+ return ____exports
@@ -1,4 +1,12 @@
1
1
  /** @noSelfInFile */
2
- import { UnitClassificationsField, UnitPropulsionWindowField } from "../../object-field/unit";
3
- export declare const PROPULSION_WINDOW_UNIT_FLOAT_FIELD: UnitPropulsionWindowField & symbol;
4
- export declare const UNIT_CLASSIFICATIONS_FIELD: UnitClassificationsField & symbol;
2
+ import { UnitClassificationsField, UnitFloatField, UnitFlyHeightField, UnitHealthRegenerationTypeField, UnitIntegerField, UnitPropulsionWindowField, UnitScalingValueField } from "../../object-field/unit";
3
+ export declare const PROPULSION_WINDOW_UNIT_FIELD: UnitPropulsionWindowField & symbol;
4
+ export declare const CLASSIFICATIONS_UNIT_FIELD: UnitClassificationsField & symbol;
5
+ export declare const FLY_HEIGHT_UNIT_FIELD: UnitFlyHeightField & symbol;
6
+ export declare const SCALING_VALUE_UNIT_FIELD: UnitScalingValueField & symbol;
7
+ export declare const HEALTH_REGENERATION_RATE_UNIT_FIELD: UnitFloatField & symbol;
8
+ export declare const MANA_REGENERATION_RATE_UNIT_FIELD: UnitFloatField & symbol;
9
+ export declare const HEALTH_REGENERATION_TYPE_UNIT_FIELD: UnitHealthRegenerationTypeField & symbol;
10
+ export declare const STRENGTH_UNIT_FIELD: UnitIntegerField<number> & symbol;
11
+ export declare const AGILITY_UNIT_FIELD: UnitIntegerField<number> & symbol;
12
+ export declare const INTELLIGENCE_UNIT_FIELD: UnitIntegerField<number> & symbol;
@@ -1,7 +1,20 @@
1
1
  local ____exports = {}
2
2
  local ____unit = require("engine.object-field.unit")
3
3
  local UnitClassificationsField = ____unit.UnitClassificationsField
4
+ local UnitFloatField = ____unit.UnitFloatField
5
+ local UnitFlyHeightField = ____unit.UnitFlyHeightField
6
+ local UnitHealthRegenerationTypeField = ____unit.UnitHealthRegenerationTypeField
7
+ local UnitIntegerField = ____unit.UnitIntegerField
4
8
  local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
5
- ____exports.PROPULSION_WINDOW_UNIT_FLOAT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
6
- ____exports.UNIT_CLASSIFICATIONS_FIELD = UnitClassificationsField:create(fourCC("utyp"))
9
+ local UnitScalingValueField = ____unit.UnitScalingValueField
10
+ ____exports.PROPULSION_WINDOW_UNIT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
11
+ ____exports.CLASSIFICATIONS_UNIT_FIELD = UnitClassificationsField:create(fourCC("utyp"))
12
+ ____exports.FLY_HEIGHT_UNIT_FIELD = UnitFlyHeightField:create(fourCC("ufyh"))
13
+ ____exports.SCALING_VALUE_UNIT_FIELD = UnitScalingValueField:create(fourCC("usca"))
14
+ ____exports.HEALTH_REGENERATION_RATE_UNIT_FIELD = UnitFloatField:create(fourCC("uhpr"))
15
+ ____exports.MANA_REGENERATION_RATE_UNIT_FIELD = UnitFloatField:create(fourCC("umpr"))
16
+ ____exports.HEALTH_REGENERATION_TYPE_UNIT_FIELD = UnitHealthRegenerationTypeField:create(fourCC("uhrt"))
17
+ ____exports.STRENGTH_UNIT_FIELD = UnitIntegerField:create(fourCC("ustc"))
18
+ ____exports.AGILITY_UNIT_FIELD = UnitIntegerField:create(fourCC("uagc"))
19
+ ____exports.INTELLIGENCE_UNIT_FIELD = UnitIntegerField:create(fourCC("uinc"))
7
20
  return ____exports
@@ -0,0 +1,11 @@
1
+ /** @noSelfInFile */
2
+ import { Player } from "../core/types/player";
3
+ import { Event } from "../event";
4
+ export declare const synchronizer: <T, K extends number>(getSyncId: (object: T) => K, getObject: (syncId: K) => T | undefined) => ((player: Player, object: T | undefined) => Promise<T | undefined>);
5
+ export declare class ObjectBus<T, K extends number> {
6
+ private readonly getSyncId;
7
+ readonly event: Event<[Player, T | undefined]>;
8
+ private readonly syncSlider;
9
+ constructor(getSyncId: (object: T) => K, getObject: (syncId: K) => T | undefined);
10
+ send(object: T | undefined): void;
11
+ }
@@ -0,0 +1,77 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
3
+ local __TS__Promise = ____lualib.__TS__Promise
4
+ local __TS__Class = ____lualib.__TS__Class
5
+ local ____exports = {}
6
+ local ____player = require("core.types.player")
7
+ local Player = ____player.Player
8
+ local ____math = require("math")
9
+ local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
10
+ local MINIMUM_INTEGER = ____math.MINIMUM_INTEGER
11
+ local ____linked_2Dset = require("utility.linked-set")
12
+ local LinkedSet = ____linked_2Dset.LinkedSet
13
+ local ____event = require("event")
14
+ local Event = ____event.Event
15
+ local eventInvoke = Event.invoke
16
+ local createFrameByType = BlzCreateFrameByType
17
+ local createTrigger = CreateTrigger
18
+ local getOriginFrame = BlzGetOriginFrame
19
+ local getTriggerFrameValue = BlzGetTriggerFrameValue
20
+ local getTriggerPlayer = GetTriggerPlayer
21
+ local frameSetMinMaxValue = BlzFrameSetMinMaxValue
22
+ local frameSetValue = BlzFrameSetValue
23
+ local triggerAddAction = TriggerAddAction
24
+ local triggerRegisterFrameEvent = BlzTriggerRegisterFrameEvent
25
+ ____exports.synchronizer = function(getSyncId, getObject)
26
+ local queue = __TS__New(LinkedSet)
27
+ local socket = __TS__New(____exports.ObjectBus, getSyncId, getObject)
28
+ socket.event:addListener(function(_, object)
29
+ local ____opt_0 = queue:pop()
30
+ if ____opt_0 ~= nil then
31
+ ____opt_0(object)
32
+ end
33
+ end)
34
+ local function executor(____, resolve)
35
+ queue:add(resolve)
36
+ end
37
+ return function(player, object)
38
+ if player.isLocal then
39
+ socket:send(object)
40
+ end
41
+ return __TS__New(__TS__Promise, executor)
42
+ end
43
+ end
44
+ ____exports.ObjectBus = __TS__Class()
45
+ local ObjectBus = ____exports.ObjectBus
46
+ ObjectBus.name = "ObjectBus"
47
+ function ObjectBus.prototype.____constructor(self, getSyncId, getObject)
48
+ self.getSyncId = getSyncId
49
+ local syncSlider = createFrameByType(
50
+ "SLIDER",
51
+ "Synchronizer",
52
+ getOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0),
53
+ "",
54
+ 0
55
+ )
56
+ frameSetMinMaxValue(syncSlider, MINIMUM_INTEGER, MAXIMUM_INTEGER)
57
+ self.syncSlider = syncSlider
58
+ local event = __TS__New(Event)
59
+ local trigger = createTrigger()
60
+ triggerRegisterFrameEvent(trigger, syncSlider, FRAMEEVENT_SLIDER_VALUE_CHANGED)
61
+ triggerAddAction(
62
+ trigger,
63
+ function()
64
+ eventInvoke(
65
+ event,
66
+ Player:of(getTriggerPlayer()),
67
+ getObject(getTriggerFrameValue())
68
+ )
69
+ end
70
+ )
71
+ self.event = event
72
+ end
73
+ function ObjectBus.prototype.send(self, object)
74
+ local syncId = object ~= nil and self.getSyncId(object) or 0
75
+ frameSetValue(self.syncSlider, syncId)
76
+ end
77
+ return ____exports
@@ -20,7 +20,13 @@ declare const enum TextTagPropertyKey {
20
20
  FONT_SIZE = 104,
21
21
  COLOR = 105,
22
22
  X = 106,
23
- Y = 107
23
+ Y = 107,
24
+ UNIT_X = 108,
25
+ UNIT_Y = 109,
26
+ UNIT_FLY_HEIGHT = 110,
27
+ UNIT_TERRAIN_Z = 111,
28
+ IS_UNIT_VISIBLE = 112,
29
+ VISIBILITY_CHECK_PHASE = 113
24
30
  }
25
31
  export declare class TextTag extends AbstractDestroyable {
26
32
  private [TextTagPropertyKey.HANDLE]?;
@@ -31,6 +37,12 @@ export declare class TextTag extends AbstractDestroyable {
31
37
  private [TextTagPropertyKey.UNIT]?;
32
38
  private [TextTagPropertyKey.X]?;
33
39
  private [TextTagPropertyKey.Y]?;
40
+ private [TextTagPropertyKey.UNIT_X]?;
41
+ private [TextTagPropertyKey.UNIT_Y]?;
42
+ private [TextTagPropertyKey.UNIT_FLY_HEIGHT]?;
43
+ private [TextTagPropertyKey.UNIT_TERRAIN_Z]?;
44
+ private [TextTagPropertyKey.IS_UNIT_VISIBLE]?;
45
+ private [TextTagPropertyKey.VISIBILITY_CHECK_PHASE]?;
34
46
  private constructor();
35
47
  protected onDestroy(): Destructor;
36
48
  get text(): string;
@@ -36,7 +36,9 @@ local isUnitVisible = IsUnitVisible
36
36
  local getUnitFlyHeight = GetUnitFlyHeight
37
37
  local getUnitX = GetUnitX
38
38
  local getUnitY = GetUnitY
39
+ local unitAlive = UnitAlive
39
40
  local DEFAULT_FONT_SIZE = 0.024
41
+ local VISIBILITY_CHECK_INTERVAL = 4
40
42
  local function applyConfiguration(textTag, configuration)
41
43
  setTextTagFadepoint(textTag, configuration.fadepoint)
42
44
  setTextTagLifespan(textTag, configuration.lifespan)
@@ -53,6 +55,7 @@ local function applyConfiguration(textTag, configuration)
53
55
  setTextTagVisibility(textTag, true)
54
56
  end
55
57
  local unitTextTags = setmetatable({}, {__mode = "k"})
58
+ local nextVisibilityCheckPhase = 0
56
59
  local function ensureHandle(textTag)
57
60
  local handle = textTag[101]
58
61
  if handle == nil then
@@ -108,7 +111,8 @@ function TextTag.create(self, configuration, text, unit)
108
111
  textTag[103] = text
109
112
  textTag[100] = unit
110
113
  textTag[102] = configuration
111
- ensureHandle(textTag)
114
+ textTag[113] = nextVisibilityCheckPhase
115
+ nextVisibilityCheckPhase = (nextVisibilityCheckPhase + 1) % VISIBILITY_CHECK_INTERVAL
112
116
  unitTextTags[textTag] = true
113
117
  return textTag
114
118
  end
@@ -120,12 +124,14 @@ __TS__SetDescriptor(
120
124
  return self[103] or ""
121
125
  end,
122
126
  set = function(self, text)
123
- setTextTagText(
124
- ensureHandle(self),
125
- text,
126
- self[104] or DEFAULT_FONT_SIZE
127
- )
127
+ if text == self[103] then
128
+ return
129
+ end
128
130
  self[103] = text
131
+ local handle = self[101]
132
+ if handle ~= nil then
133
+ setTextTagText(handle, text, self[104] or DEFAULT_FONT_SIZE)
134
+ end
129
135
  end
130
136
  },
131
137
  true
@@ -138,12 +144,14 @@ __TS__SetDescriptor(
138
144
  return self[104] or DEFAULT_FONT_SIZE
139
145
  end,
140
146
  set = function(self, fontSize)
141
- setTextTagText(
142
- ensureHandle(self),
143
- self[103] or "",
144
- DEFAULT_FONT_SIZE
145
- )
147
+ if fontSize == self[104] then
148
+ return
149
+ end
146
150
  self[104] = fontSize
151
+ local handle = self[101]
152
+ if handle ~= nil then
153
+ setTextTagText(handle, self[103] or "", fontSize)
154
+ end
147
155
  end
148
156
  },
149
157
  true
@@ -156,14 +164,20 @@ __TS__SetDescriptor(
156
164
  return self[105] or Color.white
157
165
  end,
158
166
  set = function(self, color)
159
- setTextTagColor(
160
- ensureHandle(self),
161
- color.r,
162
- color.g,
163
- color.b,
164
- color.a
165
- )
167
+ if color == self[105] then
168
+ return
169
+ end
166
170
  self[105] = color
171
+ local handle = self[101]
172
+ if handle ~= nil then
173
+ setTextTagColor(
174
+ handle,
175
+ color.r,
176
+ color.g,
177
+ color.b,
178
+ color.a
179
+ )
180
+ end
167
181
  end
168
182
  },
169
183
  true
@@ -177,13 +191,17 @@ __TS__SetDescriptor(
177
191
  end,
178
192
  set = function(self, unit)
179
193
  if unit ~= nil then
180
- setTextTagPosUnit(
181
- ensureHandle(self),
182
- unit.handle,
183
- 0
184
- )
185
194
  self[106] = nil
186
195
  self[107] = nil
196
+ self[108] = nil
197
+ self[109] = nil
198
+ self[110] = nil
199
+ self[111] = nil
200
+ self[112] = nil
201
+ local handle = self[101]
202
+ if handle ~= nil then
203
+ setTextTagPosUnit(handle, unit.handle, self[102].offsetZ)
204
+ end
187
205
  unitTextTags[self] = true
188
206
  elseif self[100] ~= nil then
189
207
  local unit = self[100]
@@ -323,25 +341,47 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
323
341
  lifespan = 5
324
342
  }
325
343
  )
344
+ local visibilityCheckPhase = 0
326
345
  Timer.onPeriod[1 / 64]:addListener(function()
346
+ visibilityCheckPhase = (visibilityCheckPhase + 1) % VISIBILITY_CHECK_INTERVAL
327
347
  for textTag in pairs(unitTextTags) do
328
348
  local unit = textTag[100].handle
329
349
  local x = getUnitX(unit)
330
350
  local y = getUnitY(unit)
331
- local ____, ____, isInView = worldCoordinatesToFrame(
332
- x,
333
- y,
334
- getUnitFlyHeight(unit) + getTerrainZ(x, y)
335
- )
336
- if isInView and not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) then
337
- setTextTagPosUnit(
338
- ensureHandle(textTag),
339
- unit,
340
- textTag[102].offsetZ
341
- )
342
- elseif textTag[101] ~= nil then
343
- destroyTextTag(textTag[101])
344
- textTag[101] = nil
351
+ local flyHeight = getUnitFlyHeight(unit)
352
+ local hasMoved = x ~= textTag[108] or y ~= textTag[109]
353
+ local hasPositionChanged = hasMoved or flyHeight ~= textTag[110]
354
+ local terrainZ = textTag[111]
355
+ if hasMoved or terrainZ == nil then
356
+ terrainZ = getTerrainZ(x, y)
357
+ textTag[108] = x
358
+ textTag[109] = y
359
+ textTag[111] = terrainZ
360
+ end
361
+ textTag[110] = flyHeight
362
+ local ____, ____, isInView = worldCoordinatesToFrame(x, y, flyHeight + terrainZ)
363
+ local isVisible = false
364
+ if isInView then
365
+ local cachedIsVisible = textTag[112]
366
+ if cachedIsVisible == nil or textTag[113] == visibilityCheckPhase then
367
+ isVisible = not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) and unitAlive(unit)
368
+ textTag[112] = isVisible
369
+ else
370
+ isVisible = cachedIsVisible
371
+ end
372
+ else
373
+ textTag[112] = nil
374
+ end
375
+ local handle = textTag[101]
376
+ if not isVisible then
377
+ if handle ~= nil then
378
+ destroyTextTag(handle)
379
+ textTag[101] = nil
380
+ end
381
+ elseif handle == nil then
382
+ ensureHandle(textTag)
383
+ elseif hasPositionChanged then
384
+ setTextTagPosUnit(handle, unit, textTag[102].offsetZ)
345
385
  end
346
386
  end
347
387
  end)
package/engine/unit.d.ts CHANGED
@@ -2,10 +2,14 @@
2
2
  import "./internal/unit";
3
3
  import "./internal/unit/order";
4
4
  import "./internal/unit/ability";
5
+ import "./internal/unit/appearance";
6
+ import "./internal/unit/extended-inventory";
7
+ import "./internal/unit/equipment-inventory";
5
8
  import "./internal/unit/allowed-targets";
6
9
  import "./internal/unit/buff";
7
10
  import "./internal/unit/expiration-timer";
8
- import "./internal/unit/item";
11
+ import "./internal/unit/inventory";
12
+ import "./internal/unit/item-order-events";
9
13
  import "./internal/unit+ability";
10
14
  import "./internal/unit+damage";
11
15
  import "./internal/unit+rally";
@@ -19,6 +23,11 @@ import "./internal/unit/invulnerability-counter";
19
23
  import "./internal/unit/detach-missiles";
20
24
  import "./internal/unit/main-selected";
21
25
  import "./internal/unit/add-item-to-slot-init";
26
+ import "./internal/unit/attributes";
27
+ import "./internal/unit/fly-height";
28
+ import "./internal/unit/scale";
29
+ import "./internal/unit/interrupts";
30
+ import "./internal/unit/range-event";
22
31
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
23
32
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
24
33
  export * from "./internal/unit+damage";
package/engine/unit.lua CHANGED
@@ -2,10 +2,14 @@ local ____exports = {}
2
2
  require("engine.internal.unit")
3
3
  require("engine.internal.unit.order")
4
4
  require("engine.internal.unit.ability")
5
+ require("engine.internal.unit.appearance")
6
+ require("engine.internal.unit.extended-inventory")
7
+ require("engine.internal.unit.equipment-inventory")
5
8
  require("engine.internal.unit.allowed-targets")
6
9
  require("engine.internal.unit.buff")
7
10
  require("engine.internal.unit.expiration-timer")
8
- require("engine.internal.unit.item")
11
+ require("engine.internal.unit.inventory")
12
+ require("engine.internal.unit.item-order-events")
9
13
  require("engine.internal.unit+ability")
10
14
  require("engine.internal.unit+damage")
11
15
  require("engine.internal.unit+rally")
@@ -19,6 +23,11 @@ require("engine.internal.unit.invulnerability-counter")
19
23
  require("engine.internal.unit.detach-missiles")
20
24
  require("engine.internal.unit.main-selected")
21
25
  require("engine.internal.unit.add-item-to-slot-init")
26
+ require("engine.internal.unit.attributes")
27
+ require("engine.internal.unit.fly-height")
28
+ require("engine.internal.unit.scale")
29
+ require("engine.internal.unit.interrupts")
30
+ require("engine.internal.unit.range-event")
22
31
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
23
32
  do
24
33
  local ____unit = require("engine.internal.unit")
package/event.d.ts CHANGED
@@ -40,7 +40,7 @@ export declare const createDispatchingEvent: {
40
40
  <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (this: void, ...args: EventParameters<T>) => number, invokeEvent?: (this: void, event: S, ...args: EventParameters<T>) => unknown, ...createEvent: [...(Event<any> extends S ? [((this: void) => S)?] : [(this: void) => S])]): DispatchingEvent<EventParameters<T>, T, S>;
41
41
  };
42
42
  export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
43
- constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
43
+ constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false, ...unknown[]] | [boolean, ...R]>);
44
44
  }
45
45
  export declare class EventParametersCaptor<T extends any[]> {
46
46
  private readonly event;
package/lualib_bundle.lua CHANGED
@@ -2241,7 +2241,7 @@ local function __TS__SourceMapTraceBack(fileName, sourceMap)
2241
2241
  end
2242
2242
  local result = string.gsub(
2243
2243
  trace,
2244
- "(%S+)%.lua:(%d+)",
2244
+ "([^%s<]+)%.lua:(%d+)",
2245
2245
  function(file, line) return replacer(nil, file .. ".lua", file .. ".ts", line) end
2246
2246
  )
2247
2247
  local function stringReplacer(____, file, line)
package/math.d.ts CHANGED
@@ -23,6 +23,8 @@ export declare const floor: typeof math.floor;
23
23
  export declare const log: typeof math.log;
24
24
  export declare const max: typeof math.max;
25
25
  export declare const min: typeof math.min;
26
+ export declare const sum: (x: number, ...numbers: number[]) => number;
27
+ export declare const product: (x: number, ...numbers: number[]) => number;
26
28
  /** Returns the signum function of the argument;
27
29
  * zero if the argument is zero,
28
30
  * 1.0 if the argument is greater than zero,