warscript 0.0.1-dev.3eed609 → 0.0.1-dev.3f0a5ea

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 (346) hide show
  1. package/core/dummy.lua +4 -2
  2. package/core/types/effect.d.ts +11 -1
  3. package/core/types/effect.lua +43 -77
  4. package/core/types/frame.d.ts +16 -2
  5. package/core/types/frame.lua +128 -67
  6. package/core/types/handle.lua +9 -9
  7. package/core/types/item.d.ts +1 -0
  8. package/core/types/item.lua +1 -0
  9. package/core/types/missile.lua +8 -7
  10. package/core/types/player.d.ts +2 -1
  11. package/core/types/player.lua +18 -13
  12. package/core/types/playerColor.lua +4 -3
  13. package/core/types/sound.d.ts +1 -1
  14. package/core/types/sound.lua +14 -9
  15. package/core/types/tileCell.d.ts +7 -2
  16. package/core/types/tileCell.lua +11 -0
  17. package/core/types/unit.d.ts +5 -0
  18. package/core/types/unit.lua +5 -0
  19. package/core/util.d.ts +3 -1
  20. package/core/util.lua +109 -3
  21. package/decl/native.d.ts +706 -7
  22. package/destroyable.d.ts +1 -0
  23. package/destroyable.lua +9 -0
  24. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  25. package/engine/ability-type-extended-tooltip.lua +44 -0
  26. package/engine/behavior.d.ts +4 -2
  27. package/engine/behavior.lua +69 -11
  28. package/engine/behaviour/ability/apply-buff.lua +4 -4
  29. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  30. package/engine/behaviour/ability/damage.d.ts +4 -0
  31. package/engine/behaviour/ability/damage.lua +19 -15
  32. package/engine/behaviour/ability/emulate-impact.d.ts +14 -0
  33. package/engine/behaviour/ability/emulate-impact.lua +79 -5
  34. package/engine/behaviour/ability/instant-impact.d.ts +12 -1
  35. package/engine/behaviour/ability/instant-impact.lua +17 -2
  36. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  37. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  38. package/engine/behaviour/ability.d.ts +19 -6
  39. package/engine/behaviour/ability.lua +120 -9
  40. package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
  41. package/engine/behaviour/unit/stun-immunity.lua +5 -4
  42. package/engine/behaviour/unit.d.ts +1 -0
  43. package/engine/behaviour/unit.lua +14 -3
  44. package/engine/buff.d.ts +103 -55
  45. package/engine/buff.lua +486 -270
  46. package/engine/index.d.ts +2 -1
  47. package/engine/internal/ability.d.ts +7 -0
  48. package/engine/internal/ability.lua +65 -36
  49. package/engine/internal/item/fields.d.ts +12 -0
  50. package/engine/internal/item/fields.lua +33 -0
  51. package/engine/internal/item/owner-cache.d.ts +5 -0
  52. package/engine/internal/item/owner-cache.lua +4 -0
  53. package/engine/internal/item+owner.d.ts +2 -0
  54. package/engine/internal/item+owner.lua +27 -4
  55. package/engine/internal/item.d.ts +20 -5
  56. package/engine/internal/item.lua +146 -57
  57. package/engine/internal/mechanics/cast-ability.lua +6 -3
  58. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  59. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  60. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  61. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  62. package/engine/internal/object-data/health-bonus.lua +16 -0
  63. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  64. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  65. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  66. package/engine/internal/object-data/mana-bonus.lua +16 -0
  67. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  68. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  69. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  70. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  71. package/engine/internal/unit/ability.lua +16 -0
  72. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  73. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  74. package/engine/internal/unit/appearance.d.ts +15 -0
  75. package/engine/internal/unit/appearance.lua +85 -0
  76. package/engine/internal/unit/attributes.d.ts +17 -0
  77. package/engine/internal/unit/attributes.lua +46 -0
  78. package/engine/internal/unit/bonus.d.ts +17 -0
  79. package/engine/internal/unit/bonus.lua +113 -8
  80. package/engine/internal/unit/buff.d.ts +2 -2
  81. package/engine/internal/unit/buff.lua +34 -19
  82. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  83. package/engine/internal/unit/equipment-inventory.lua +233 -0
  84. package/engine/internal/unit/expiration-timer.lua +1 -1
  85. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  86. package/engine/internal/unit/extended-inventory.lua +99 -0
  87. package/engine/internal/unit/fly-height.lua +3 -3
  88. package/engine/internal/unit/ignore-events-items.lua +10 -1
  89. package/engine/internal/unit/interrupts.d.ts +12 -0
  90. package/engine/internal/unit/interrupts.lua +28 -0
  91. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  92. package/engine/internal/unit/inventory.lua +87 -0
  93. package/engine/internal/unit/item-container.d.ts +25 -0
  94. package/engine/internal/unit/item-container.lua +11 -0
  95. package/engine/internal/unit/item-order-events.d.ts +17 -0
  96. package/engine/internal/unit/item-order-events.lua +67 -0
  97. package/engine/internal/unit/item-slot.d.ts +27 -0
  98. package/engine/internal/unit/item-slot.lua +92 -0
  99. package/engine/internal/unit/order.d.ts +3 -3
  100. package/engine/internal/unit/order.lua +10 -10
  101. package/engine/internal/unit/range-event.d.ts +12 -0
  102. package/engine/internal/unit/range-event.lua +90 -0
  103. package/engine/internal/unit/scale.lua +3 -3
  104. package/engine/internal/unit+ability.d.ts +2 -1
  105. package/engine/internal/unit+ability.lua +73 -2
  106. package/engine/internal/unit+bonus.lua +3 -3
  107. package/engine/internal/unit+damage.d.ts +9 -0
  108. package/engine/internal/unit+damage.lua +33 -0
  109. package/engine/internal/unit+rally.lua +9 -31
  110. package/engine/internal/unit-missile-data.lua +96 -68
  111. package/engine/internal/unit-missile-launch.lua +25 -18
  112. package/engine/internal/unit.d.ts +4 -19
  113. package/engine/internal/unit.lua +132 -221
  114. package/engine/lightning.lua +4 -4
  115. package/engine/local-client.d.ts +27 -1
  116. package/engine/local-client.lua +298 -58
  117. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  118. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  119. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  120. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  121. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  122. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  123. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  124. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  125. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  126. package/engine/object-data/auxiliary/item-class.lua +2 -0
  127. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  128. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  129. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  130. package/engine/object-data/auxiliary/order-type.lua +2 -0
  131. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  132. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  133. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  134. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  135. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  136. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  137. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  138. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  139. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  140. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  141. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  142. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  143. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  144. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  145. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  146. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  147. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  148. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  149. package/engine/object-data/entry/ability-type/blank-configurable.lua +2 -2
  150. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  151. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  152. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  153. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  154. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  155. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  156. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  157. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  158. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  159. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  160. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  161. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  162. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  163. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  164. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  165. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  166. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  167. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  168. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  169. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  170. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  171. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  172. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  173. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  174. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  175. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  176. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  177. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  178. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  179. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  180. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  181. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  182. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  183. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  184. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  185. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  186. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  187. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  188. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  189. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  190. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  191. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  192. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  193. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  194. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  195. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  196. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  197. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  198. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  199. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  200. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  201. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  202. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  203. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  204. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  205. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  206. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  207. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  208. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  209. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  210. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  211. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  212. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  213. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  214. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  215. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  216. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  217. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  218. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  219. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  220. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  221. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  222. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  223. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  224. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  225. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  226. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  227. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  228. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  229. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  230. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  232. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  234. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  235. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  236. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  237. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  238. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  239. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  240. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  241. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  242. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  243. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  244. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  245. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  246. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  247. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  248. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  249. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  250. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  251. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  252. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  253. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  254. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  255. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  256. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  257. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  258. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  259. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  260. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  261. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  262. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  263. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  264. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  265. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  266. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  267. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  268. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  269. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  270. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  271. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  272. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  273. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  274. package/engine/object-data/entry/ability-type.d.ts +35 -8
  275. package/engine/object-data/entry/ability-type.lua +299 -11
  276. package/engine/object-data/entry/buff-type/applicable.lua +122 -111
  277. package/engine/object-data/entry/buff-type.d.ts +6 -2
  278. package/engine/object-data/entry/buff-type.lua +26 -0
  279. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  280. package/engine/object-data/entry/destructible-type.lua +181 -0
  281. package/engine/object-data/entry/item-type.d.ts +18 -3
  282. package/engine/object-data/entry/item-type.lua +84 -0
  283. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  284. package/engine/object-data/entry/lightning-type.lua +1 -1
  285. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  286. package/engine/object-data/entry/unit-type.d.ts +57 -2
  287. package/engine/object-data/entry/unit-type.lua +412 -64
  288. package/engine/object-data/entry/upgrade.d.ts +2 -2
  289. package/engine/object-data/entry.d.ts +6 -1
  290. package/engine/object-data/entry.lua +8 -0
  291. package/engine/object-field/ability.lua +2 -2
  292. package/engine/object-field/item.d.ts +22 -0
  293. package/engine/object-field/item.lua +118 -0
  294. package/engine/object-field/unit.d.ts +7 -4
  295. package/engine/object-field/unit.lua +4 -0
  296. package/engine/object-field.d.ts +3 -1
  297. package/engine/object-field.lua +177 -119
  298. package/engine/random.d.ts +1 -0
  299. package/engine/random.lua +8 -0
  300. package/engine/standard/entries/ability-type.d.ts +3102 -7
  301. package/engine/standard/entries/ability-type.lua +0 -6
  302. package/engine/standard/entries/buff-type.d.ts +45 -0
  303. package/engine/standard/entries/buff-type.lua +43 -0
  304. package/engine/standard/entries/item-type.d.ts +1299 -0
  305. package/engine/standard/entries/item-type.lua +2 -0
  306. package/engine/standard/entries/lightning-type.d.ts +42 -15
  307. package/engine/standard/entries/lightning-type.lua +0 -14
  308. package/engine/standard/entries/unit-type.d.ts +5 -0
  309. package/engine/standard/entries/unit-type.lua +5 -0
  310. package/engine/standard/fields/ability.d.ts +2 -2
  311. package/engine/standard/fields/ability.lua +2 -2
  312. package/engine/standard/fields/item.d.ts +4 -0
  313. package/engine/standard/fields/item.lua +6 -0
  314. package/engine/standard/fields/unit.d.ts +11 -5
  315. package/engine/standard/fields/unit.lua +13 -4
  316. package/engine/text-tag.d.ts +17 -1
  317. package/engine/text-tag.lua +77 -40
  318. package/engine/unit.d.ts +8 -1
  319. package/engine/unit.lua +8 -1
  320. package/event.d.ts +1 -1
  321. package/lualib_bundle.lua +1 -1
  322. package/math.d.ts +2 -0
  323. package/math.lua +14 -0
  324. package/network.lua +25 -1
  325. package/objutil/buff.lua +10 -8
  326. package/objutil/object.lua +1 -1
  327. package/operation.d.ts +8 -1
  328. package/operation.lua +38 -18
  329. package/package.json +3 -23
  330. package/patch-lua.lua +15 -0
  331. package/utility/arrays.d.ts +7 -1
  332. package/utility/arrays.lua +17 -0
  333. package/utility/linked-map.d.ts +35 -0
  334. package/utility/linked-map.lua +107 -0
  335. package/utility/linked-set.d.ts +3 -1
  336. package/utility/linked-set.lua +27 -0
  337. package/utility/random.d.ts +102 -0
  338. package/utility/random.lua +273 -0
  339. package/utility/records.lua +20 -1
  340. package/utility/unordered-map.d.ts +27 -0
  341. package/utility/unordered-map.lua +99 -0
  342. package/engine/internal/unit/item.lua +0 -78
  343. /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
  344. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  345. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  346. /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;
@@ -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"))
@@ -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,6 +1,12 @@
1
1
  /** @noSelfInFile */
2
- import { UnitClassificationsField, UnitFlyHeightField, UnitPropulsionWindowField, UnitScalingValueField } from "../../object-field/unit";
3
- export declare const PROPULSION_WINDOW_UNIT_FLOAT_FIELD: UnitPropulsionWindowField & symbol;
4
- export declare const UNIT_CLASSIFICATIONS_FIELD: UnitClassificationsField & symbol;
5
- export declare const FLY_HEIGHT_UNIT_FLOAT_FIELD: UnitFlyHeightField & symbol;
6
- export declare const SCALING_VALUE_UNIT_FLOAT_FIELD: UnitScalingValueField & 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,11 +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
4
5
  local UnitFlyHeightField = ____unit.UnitFlyHeightField
6
+ local UnitHealthRegenerationTypeField = ____unit.UnitHealthRegenerationTypeField
7
+ local UnitIntegerField = ____unit.UnitIntegerField
5
8
  local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
6
9
  local UnitScalingValueField = ____unit.UnitScalingValueField
7
- ____exports.PROPULSION_WINDOW_UNIT_FLOAT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
8
- ____exports.UNIT_CLASSIFICATIONS_FIELD = UnitClassificationsField:create(fourCC("utyp"))
9
- ____exports.FLY_HEIGHT_UNIT_FLOAT_FIELD = UnitFlyHeightField:create(fourCC("ufyh"))
10
- ____exports.SCALING_VALUE_UNIT_FLOAT_FIELD = UnitScalingValueField:create(fourCC("usca"))
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"))
11
20
  return ____exports
@@ -20,7 +20,15 @@ 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
+ TERRAIN_X = 111,
28
+ TERRAIN_Y = 112,
29
+ TERRAIN_Z = 113,
30
+ IS_VISIBILITY_CHECK_PENDING = 114,
31
+ VISIBILITY_CHECK_PHASE = 115
24
32
  }
25
33
  export declare class TextTag extends AbstractDestroyable {
26
34
  private [TextTagPropertyKey.HANDLE]?;
@@ -31,6 +39,14 @@ export declare class TextTag extends AbstractDestroyable {
31
39
  private [TextTagPropertyKey.UNIT]?;
32
40
  private [TextTagPropertyKey.X]?;
33
41
  private [TextTagPropertyKey.Y]?;
42
+ private [TextTagPropertyKey.UNIT_X]?;
43
+ private [TextTagPropertyKey.UNIT_Y]?;
44
+ private [TextTagPropertyKey.UNIT_FLY_HEIGHT]?;
45
+ private [TextTagPropertyKey.TERRAIN_X]?;
46
+ private [TextTagPropertyKey.TERRAIN_Y]?;
47
+ private [TextTagPropertyKey.TERRAIN_Z]?;
48
+ private [TextTagPropertyKey.IS_VISIBILITY_CHECK_PENDING]?;
49
+ private [TextTagPropertyKey.VISIBILITY_CHECK_PHASE]?;
34
50
  private constructor();
35
51
  protected onDestroy(): Destructor;
36
52
  get text(): string;
@@ -38,6 +38,7 @@ local getUnitX = GetUnitX
38
38
  local getUnitY = GetUnitY
39
39
  local unitAlive = UnitAlive
40
40
  local DEFAULT_FONT_SIZE = 0.024
41
+ local VISIBILITY_CHECK_INTERVAL = 4
41
42
  local function applyConfiguration(textTag, configuration)
42
43
  setTextTagFadepoint(textTag, configuration.fadepoint)
43
44
  setTextTagLifespan(textTag, configuration.lifespan)
@@ -54,6 +55,7 @@ local function applyConfiguration(textTag, configuration)
54
55
  setTextTagVisibility(textTag, true)
55
56
  end
56
57
  local unitTextTags = setmetatable({}, {__mode = "k"})
58
+ local nextVisibilityCheckPhase = 0
57
59
  local function ensureHandle(textTag)
58
60
  local handle = textTag[101]
59
61
  if handle == nil then
@@ -109,7 +111,9 @@ function TextTag.create(self, configuration, text, unit)
109
111
  textTag[103] = text
110
112
  textTag[100] = unit
111
113
  textTag[102] = configuration
112
- ensureHandle(textTag)
114
+ textTag[115] = nextVisibilityCheckPhase
115
+ nextVisibilityCheckPhase = (nextVisibilityCheckPhase + 1) % VISIBILITY_CHECK_INTERVAL
116
+ textTag[114] = true
113
117
  unitTextTags[textTag] = true
114
118
  return textTag
115
119
  end
@@ -121,12 +125,14 @@ __TS__SetDescriptor(
121
125
  return self[103] or ""
122
126
  end,
123
127
  set = function(self, text)
124
- setTextTagText(
125
- ensureHandle(self),
126
- text,
127
- self[104] or DEFAULT_FONT_SIZE
128
- )
128
+ if text == self[103] then
129
+ return
130
+ end
129
131
  self[103] = text
132
+ local handle = self[101]
133
+ if handle ~= nil then
134
+ setTextTagText(handle, text, self[104] or DEFAULT_FONT_SIZE)
135
+ end
130
136
  end
131
137
  },
132
138
  true
@@ -139,12 +145,14 @@ __TS__SetDescriptor(
139
145
  return self[104] or DEFAULT_FONT_SIZE
140
146
  end,
141
147
  set = function(self, fontSize)
142
- setTextTagText(
143
- ensureHandle(self),
144
- self[103] or "",
145
- fontSize
146
- )
148
+ if fontSize == self[104] then
149
+ return
150
+ end
147
151
  self[104] = fontSize
152
+ local handle = self[101]
153
+ if handle ~= nil then
154
+ setTextTagText(handle, self[103] or "", fontSize)
155
+ end
148
156
  end
149
157
  },
150
158
  true
@@ -157,14 +165,20 @@ __TS__SetDescriptor(
157
165
  return self[105] or Color.white
158
166
  end,
159
167
  set = function(self, color)
160
- setTextTagColor(
161
- ensureHandle(self),
162
- color.r,
163
- color.g,
164
- color.b,
165
- color.a
166
- )
168
+ if color == self[105] then
169
+ return
170
+ end
167
171
  self[105] = color
172
+ local handle = self[101]
173
+ if handle ~= nil then
174
+ setTextTagColor(
175
+ handle,
176
+ color.r,
177
+ color.g,
178
+ color.b,
179
+ color.a
180
+ )
181
+ end
168
182
  end
169
183
  },
170
184
  true
@@ -178,13 +192,16 @@ __TS__SetDescriptor(
178
192
  end,
179
193
  set = function(self, unit)
180
194
  if unit ~= nil then
181
- setTextTagPosUnit(
182
- ensureHandle(self),
183
- unit.handle,
184
- 0
185
- )
186
195
  self[106] = nil
187
196
  self[107] = nil
197
+ self[108] = nil
198
+ self[109] = nil
199
+ self[110] = nil
200
+ self[114] = true
201
+ local handle = self[101]
202
+ if handle ~= nil then
203
+ setTextTagPosUnit(handle, unit.handle, self[102].offsetZ)
204
+ end
188
205
  unitTextTags[self] = true
189
206
  elseif self[100] ~= nil then
190
207
  local unit = self[100]
@@ -324,25 +341,45 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
324
341
  lifespan = 5
325
342
  }
326
343
  )
344
+ local visibilityCheckPhase = 0
327
345
  Timer.onPeriod[1 / 64]:addListener(function()
346
+ visibilityCheckPhase = (visibilityCheckPhase + 1) % VISIBILITY_CHECK_INTERVAL
328
347
  for textTag in pairs(unitTextTags) do
329
- local unit = textTag[100].handle
330
- local x = getUnitX(unit)
331
- local y = getUnitY(unit)
332
- local ____, ____, isInView = worldCoordinatesToFrame(
333
- x,
334
- y,
335
- getUnitFlyHeight(unit) + getTerrainZ(x, y)
336
- )
337
- if isInView and not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) and unitAlive(unit) then
338
- setTextTagPosUnit(
339
- ensureHandle(textTag),
340
- unit,
341
- textTag[102].offsetZ
342
- )
343
- elseif textTag[101] ~= nil then
344
- destroyTextTag(textTag[101])
345
- textTag[101] = nil
348
+ local handle = textTag[101]
349
+ local isVisibilityCheckDue = textTag[114] or textTag[115] == visibilityCheckPhase
350
+ if handle ~= nil or isVisibilityCheckDue then
351
+ local unit = textTag[100].handle
352
+ local x = getUnitX(unit)
353
+ local y = getUnitY(unit)
354
+ local flyHeight = getUnitFlyHeight(unit)
355
+ local isShown = handle ~= nil
356
+ if isVisibilityCheckDue then
357
+ textTag[114] = nil
358
+ local terrainZ = textTag[113]
359
+ if terrainZ == nil or x ~= textTag[111] or y ~= textTag[112] then
360
+ terrainZ = getTerrainZ(x, y)
361
+ textTag[111] = x
362
+ textTag[112] = y
363
+ textTag[113] = terrainZ
364
+ end
365
+ local ____, ____, isInView = worldCoordinatesToFrame(x, y, flyHeight + terrainZ)
366
+ isShown = isInView and not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) and unitAlive(unit)
367
+ end
368
+ if not isShown then
369
+ if handle ~= nil then
370
+ destroyTextTag(handle)
371
+ textTag[101] = nil
372
+ end
373
+ elseif handle == nil or x ~= textTag[108] or y ~= textTag[109] or flyHeight ~= textTag[110] then
374
+ if handle == nil then
375
+ ensureHandle(textTag)
376
+ else
377
+ setTextTagPosUnit(handle, unit, textTag[102].offsetZ)
378
+ end
379
+ textTag[108] = x
380
+ textTag[109] = y
381
+ textTag[110] = flyHeight
382
+ end
346
383
  end
347
384
  end
348
385
  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,8 +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";
22
27
  import "./internal/unit/fly-height";
23
28
  import "./internal/unit/scale";
29
+ import "./internal/unit/interrupts";
30
+ import "./internal/unit/range-event";
24
31
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
25
32
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
26
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,8 +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")
22
27
  require("engine.internal.unit.fly-height")
23
28
  require("engine.internal.unit.scale")
29
+ require("engine.internal.unit.interrupts")
30
+ require("engine.internal.unit.range-event")
24
31
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
25
32
  do
26
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,
package/math.lua CHANGED
@@ -39,6 +39,20 @@ ____exports.floor = math.floor
39
39
  ____exports.log = math.log
40
40
  ____exports.max = math.max
41
41
  ____exports.min = math.min
42
+ ____exports.sum = function(x, ...)
43
+ for i = 1, select("#", ...) do
44
+ local number = select(i, ...)
45
+ x = x + number
46
+ end
47
+ return x
48
+ end
49
+ ____exports.product = function(x, ...)
50
+ for i = 1, select("#", ...) do
51
+ local number = select(i, ...)
52
+ x = x * number
53
+ end
54
+ return x
55
+ end
42
56
  --- Returns the signum function of the argument;
43
57
  -- zero if the argument is zero,
44
58
  -- 1.0 if the argument is greater than zero,
package/network.lua CHANGED
@@ -8,6 +8,7 @@ local ____exports = {}
8
8
  local ____event = require("event")
9
9
  local TriggerEvent = ____event.TriggerEvent
10
10
  local ____exception = require("exception")
11
+ local CancellationException = ____exception.CancellationException
11
12
  local IllegalArgumentException = ____exception.IllegalArgumentException
12
13
  local ____player = require("core.types.player")
13
14
  local Player = ____player.Player
@@ -86,6 +87,9 @@ function SyncOperation.prototype.____constructor(self, player, data)
86
87
  self.l = #self.d
87
88
  end
88
89
  function SyncOperation.prototype.estimate(self)
90
+ if self.isCanceled or not self.player.isPlaying then
91
+ return __TS__Promise.reject(__TS__New(CancellationException))
92
+ end
89
93
  if self.player.isLocal then
90
94
  sendSyncData(
91
95
  "__oh",
@@ -98,6 +102,7 @@ function SyncOperation.prototype.estimate(self)
98
102
  end
99
103
  function SyncOperation.prototype.work(self)
100
104
  if self.progress >= self.maximum then
105
+ syncOperationById[self.x] = nil
101
106
  return decode(concat(self.c))
102
107
  end
103
108
  self.s = packetsPerRound
@@ -116,7 +121,18 @@ function SyncOperation.prototype.work(self)
116
121
  return __TS__New(__TS__Promise, syncPromiseExecutor)
117
122
  end
118
123
  function SyncOperation.prototype.doCancel(self)
119
- return false
124
+ if not (syncOperationById[self.x] ~= nil) then
125
+ return false
126
+ end
127
+ syncOperationById[self.x] = nil
128
+ local ____opt_1 = self.r
129
+ if ____opt_1 ~= nil then
130
+ ____opt_1(
131
+ self,
132
+ __TS__New(CancellationException)
133
+ )
134
+ end
135
+ return true
120
136
  end
121
137
  __TS__ObjectDefineProperty(
122
138
  SyncOperation,
@@ -178,6 +194,7 @@ SyncOperation._ = (function()
178
194
  local resolveWork = syncOperation.w
179
195
  if resolveWork then
180
196
  if syncOperation.progress >= syncOperation.maximum then
197
+ syncOperationById[id] = nil
181
198
  resolveWork(
182
199
  nil,
183
200
  decode(concat(chunks))
@@ -188,6 +205,13 @@ SyncOperation._ = (function()
188
205
  end
189
206
  end
190
207
  end)
208
+ Player.onLeave:addListener(function(player)
209
+ for ____, operation in pairs(syncOperationById) do
210
+ if operation.player == player then
211
+ operation:cancel()
212
+ end
213
+ end
214
+ end)
191
215
  end)()
192
216
  function ____exports.synchronize(player, data)
193
217
  return __TS__New(____exports.SyncOperation, player, data):execute()