warscript 0.0.1-dev.3e757ee → 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 (448) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/dummy.lua +4 -2
  6. package/core/types/effect.d.ts +13 -4
  7. package/core/types/effect.lua +136 -123
  8. package/core/types/frame.d.ts +16 -2
  9. package/core/types/frame.lua +141 -77
  10. package/core/types/handle.lua +9 -9
  11. package/core/types/item.d.ts +1 -0
  12. package/core/types/item.lua +1 -0
  13. package/core/types/missile.lua +8 -7
  14. package/core/types/player.d.ts +18 -1
  15. package/core/types/player.lua +76 -26
  16. package/core/types/playerCamera.d.ts +2 -0
  17. package/core/types/playerCamera.lua +123 -5
  18. package/core/types/playerColor.lua +4 -3
  19. package/core/types/sound.d.ts +18 -25
  20. package/core/types/sound.lua +113 -33
  21. package/core/types/tileCell.d.ts +18 -3
  22. package/core/types/tileCell.lua +108 -0
  23. package/core/types/timer.d.ts +9 -8
  24. package/core/types/timer.lua +45 -23
  25. package/core/types/unit.d.ts +5 -0
  26. package/core/types/unit.lua +5 -0
  27. package/core/util.d.ts +3 -1
  28. package/core/util.lua +121 -4
  29. package/decl/native.d.ts +1719 -964
  30. package/destroyable.d.ts +1 -0
  31. package/destroyable.lua +9 -0
  32. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  33. package/engine/ability-type-extended-tooltip.lua +44 -0
  34. package/engine/behavior.d.ts +14 -1
  35. package/engine/behavior.lua +230 -70
  36. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  37. package/engine/behaviour/ability/always-enabled.lua +31 -0
  38. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  39. package/engine/behaviour/ability/apply-buff.lua +36 -4
  40. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  41. package/engine/behaviour/ability/damage.d.ts +13 -3
  42. package/engine/behaviour/ability/damage.lua +41 -49
  43. package/engine/behaviour/ability/emulate-impact.d.ts +15 -1
  44. package/engine/behaviour/ability/emulate-impact.lua +94 -6
  45. package/engine/behaviour/ability/instant-impact.d.ts +12 -1
  46. package/engine/behaviour/ability/instant-impact.lua +17 -2
  47. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  48. package/engine/behaviour/ability/on-command-impact.lua +8 -0
  49. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  50. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  51. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  52. package/engine/behaviour/ability/restore-mana.lua +6 -6
  53. package/engine/behaviour/ability.d.ts +29 -5
  54. package/engine/behaviour/ability.lua +196 -22
  55. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  56. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  57. package/engine/behaviour/unit.d.ts +41 -2
  58. package/engine/behaviour/unit.lua +270 -6
  59. package/engine/buff.d.ts +130 -59
  60. package/engine/buff.lua +638 -307
  61. package/engine/index.d.ts +2 -1
  62. package/engine/internal/ability.d.ts +25 -2
  63. package/engine/internal/ability.lua +164 -30
  64. package/engine/internal/item/ability.lua +162 -4
  65. package/engine/internal/item/fields.d.ts +12 -0
  66. package/engine/internal/item/fields.lua +33 -0
  67. package/engine/internal/item/owner-cache.d.ts +5 -0
  68. package/engine/internal/item/owner-cache.lua +4 -0
  69. package/engine/internal/item+owner.d.ts +2 -0
  70. package/engine/internal/item+owner.lua +37 -8
  71. package/engine/internal/item.d.ts +34 -18
  72. package/engine/internal/item.lua +308 -102
  73. package/engine/internal/mechanics/ability-duration.lua +1 -1
  74. package/engine/internal/mechanics/cast-ability.lua +6 -3
  75. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  76. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  77. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  78. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  79. package/engine/internal/misc/frame-coordinates.lua +21 -0
  80. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  81. package/engine/internal/misc/get-terrain-z.lua +11 -0
  82. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  83. package/engine/internal/misc/player-local-handle.lua +5 -0
  84. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  85. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  86. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  87. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  88. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  89. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  90. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  91. package/engine/internal/object-data/evasion-probability.lua +16 -0
  92. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  93. package/engine/internal/object-data/health-bonus.lua +16 -0
  94. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  95. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  96. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  97. package/engine/internal/object-data/mana-bonus.lua +16 -0
  98. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  99. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  100. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  101. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  102. package/engine/internal/unit/ability.d.ts +35 -0
  103. package/engine/internal/unit/ability.lua +114 -9
  104. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  105. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  106. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  107. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  108. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  109. package/engine/internal/unit/allowed-targets.lua +9 -1
  110. package/engine/internal/unit/appearance.d.ts +15 -0
  111. package/engine/internal/unit/appearance.lua +85 -0
  112. package/engine/internal/unit/attributes.d.ts +17 -0
  113. package/engine/internal/unit/attributes.lua +46 -0
  114. package/engine/internal/unit/bonus.d.ts +19 -0
  115. package/engine/internal/unit/bonus.lua +130 -8
  116. package/engine/internal/unit/buff.d.ts +2 -2
  117. package/engine/internal/unit/buff.lua +34 -19
  118. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  119. package/engine/internal/unit/equipment-inventory.lua +233 -0
  120. package/engine/internal/unit/expiration-timer.lua +1 -1
  121. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  122. package/engine/internal/unit/extended-inventory.lua +99 -0
  123. package/engine/internal/unit/fly-height.d.ts +7 -0
  124. package/engine/internal/unit/fly-height.lua +20 -0
  125. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  126. package/engine/internal/unit/ignore-events-items.lua +14 -0
  127. package/engine/internal/unit/interrupts.d.ts +12 -0
  128. package/engine/internal/unit/interrupts.lua +28 -0
  129. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  130. package/engine/internal/unit/inventory.lua +87 -0
  131. package/engine/internal/unit/item-container.d.ts +25 -0
  132. package/engine/internal/unit/item-container.lua +11 -0
  133. package/engine/internal/unit/item-order-events.d.ts +17 -0
  134. package/engine/internal/unit/item-order-events.lua +67 -0
  135. package/engine/internal/unit/item-slot.d.ts +27 -0
  136. package/engine/internal/unit/item-slot.lua +92 -0
  137. package/engine/internal/unit/main-selected.lua +12 -27
  138. package/engine/internal/unit/order.d.ts +20 -0
  139. package/engine/internal/unit/order.lua +136 -0
  140. package/engine/internal/unit/range-event.d.ts +12 -0
  141. package/engine/internal/unit/range-event.lua +90 -0
  142. package/engine/internal/unit/scale.d.ts +7 -0
  143. package/engine/internal/unit/scale.lua +20 -0
  144. package/engine/internal/unit+ability.d.ts +2 -1
  145. package/engine/internal/unit+ability.lua +83 -3
  146. package/engine/internal/unit+bonus.lua +3 -3
  147. package/engine/internal/unit+damage.d.ts +11 -11
  148. package/engine/internal/unit+damage.lua +43 -14
  149. package/engine/internal/unit+rally.lua +9 -31
  150. package/engine/internal/unit+spellSteal.lua +1 -2
  151. package/engine/internal/unit-missile-data.lua +96 -68
  152. package/engine/internal/unit-missile-launch.lua +65 -27
  153. package/engine/internal/unit.d.ts +45 -33
  154. package/engine/internal/unit.lua +434 -307
  155. package/engine/internal/utility.lua +12 -0
  156. package/engine/lightning.d.ts +12 -5
  157. package/engine/lightning.lua +52 -18
  158. package/engine/local-client.d.ts +28 -0
  159. package/engine/local-client.lua +324 -54
  160. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  161. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  162. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  163. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  164. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  165. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  166. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  167. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  168. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  169. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  170. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  171. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  172. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  173. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  174. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  175. package/engine/object-data/auxiliary/item-class.lua +2 -0
  176. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  177. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  178. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  179. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  180. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  181. package/engine/object-data/auxiliary/order-type.lua +2 -0
  182. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  183. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  184. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  185. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  186. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  187. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  188. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  189. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  190. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  191. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  192. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  193. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  194. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  195. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  196. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  197. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  198. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  199. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  200. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  201. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  202. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  203. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  204. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  205. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  206. package/engine/object-data/entry/ability-type/blank-configurable.lua +14 -3
  207. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  208. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  209. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  210. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  211. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  212. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  213. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  214. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  215. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  216. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  217. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  218. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  219. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  220. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  221. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  222. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  223. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  224. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  225. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  226. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  227. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  228. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  229. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  230. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  231. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  232. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  233. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  234. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  235. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  236. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  237. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  238. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  239. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  240. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  241. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  242. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  243. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  244. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  245. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  246. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  247. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  248. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  249. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  250. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  251. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  252. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  253. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  254. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  255. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  256. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  257. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  258. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  259. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  260. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  261. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  262. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  263. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  264. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  265. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  266. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  267. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  268. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  269. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  270. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  271. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  272. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  273. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  274. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  275. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  276. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  277. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  278. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  279. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  280. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  281. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  282. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  283. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  284. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  285. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  286. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  287. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  288. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  289. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  290. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  291. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  292. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  293. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  294. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  295. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  296. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  297. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  298. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  299. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  300. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  301. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  302. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  303. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  304. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  305. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  306. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  307. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  308. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  309. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  310. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  311. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  312. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  313. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  314. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  315. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  316. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  317. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  318. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  319. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  320. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  321. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  322. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  323. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  324. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  325. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  326. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  327. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  328. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  329. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  330. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  331. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  332. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  333. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  334. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  335. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  336. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  337. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  338. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  339. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  340. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  341. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  342. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  343. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  344. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  345. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  346. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  347. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  348. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  349. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  350. package/engine/object-data/entry/ability-type/web.lua +52 -0
  351. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  352. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  353. package/engine/object-data/entry/ability-type.d.ts +50 -21
  354. package/engine/object-data/entry/ability-type.lua +392 -47
  355. package/engine/object-data/entry/buff-type/applicable.lua +131 -139
  356. package/engine/object-data/entry/buff-type.d.ts +10 -12
  357. package/engine/object-data/entry/buff-type.lua +39 -29
  358. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  359. package/engine/object-data/entry/destructible-type.lua +181 -0
  360. package/engine/object-data/entry/item-type.d.ts +20 -3
  361. package/engine/object-data/entry/item-type.lua +99 -2
  362. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  363. package/engine/object-data/entry/lightning-type.lua +1 -1
  364. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  365. package/engine/object-data/entry/sound-preset.lua +140 -0
  366. package/engine/object-data/entry/unit-type.d.ts +81 -6
  367. package/engine/object-data/entry/unit-type.lua +606 -93
  368. package/engine/object-data/entry/upgrade.d.ts +2 -2
  369. package/engine/object-data/entry/upgrade.lua +4 -4
  370. package/engine/object-data/entry.d.ts +21 -14
  371. package/engine/object-data/entry.lua +68 -32
  372. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  373. package/engine/object-field/ability.d.ts +8 -5
  374. package/engine/object-field/ability.lua +10 -6
  375. package/engine/object-field/item.d.ts +22 -0
  376. package/engine/object-field/item.lua +118 -0
  377. package/engine/object-field/unit.d.ts +72 -3
  378. package/engine/object-field/unit.lua +268 -7
  379. package/engine/object-field.d.ts +26 -7
  380. package/engine/object-field.lua +362 -117
  381. package/engine/random.d.ts +10 -0
  382. package/engine/random.lua +21 -0
  383. package/engine/standard/entries/ability-type.d.ts +3102 -7
  384. package/engine/standard/entries/ability-type.lua +0 -6
  385. package/engine/standard/entries/buff-type.d.ts +48 -0
  386. package/engine/standard/entries/buff-type.lua +46 -0
  387. package/engine/standard/entries/item-type.d.ts +1299 -0
  388. package/engine/standard/entries/item-type.lua +2 -0
  389. package/engine/standard/entries/lightning-type.d.ts +42 -15
  390. package/engine/standard/entries/lightning-type.lua +0 -14
  391. package/engine/standard/entries/sound-preset.d.ts +10 -0
  392. package/engine/standard/entries/sound-preset.lua +10 -0
  393. package/engine/standard/entries/unit-type.d.ts +5 -0
  394. package/engine/standard/entries/unit-type.lua +5 -0
  395. package/engine/standard/fields/ability.d.ts +6 -4
  396. package/engine/standard/fields/ability.lua +6 -4
  397. package/engine/standard/fields/item.d.ts +4 -0
  398. package/engine/standard/fields/item.lua +6 -0
  399. package/engine/standard/fields/unit.d.ts +12 -0
  400. package/engine/standard/fields/unit.lua +20 -0
  401. package/engine/synchronization.d.ts +11 -0
  402. package/engine/synchronization.lua +77 -0
  403. package/engine/text-tag.d.ts +52 -2
  404. package/engine/text-tag.lua +287 -10
  405. package/engine/unit.d.ts +12 -1
  406. package/engine/unit.lua +12 -1
  407. package/event.d.ts +1 -1
  408. package/lualib_bundle.lua +1 -1
  409. package/math.d.ts +2 -0
  410. package/math.lua +14 -0
  411. package/net/socket.lua +1 -1
  412. package/network.lua +25 -1
  413. package/objutil/buff.lua +12 -11
  414. package/objutil/object.lua +1 -1
  415. package/objutil/unit.lua +8 -0
  416. package/operation.d.ts +8 -1
  417. package/operation.lua +38 -18
  418. package/package.json +3 -23
  419. package/patch-lua.lua +15 -0
  420. package/patch-lualib.lua +1 -1
  421. package/utility/arrays.d.ts +9 -1
  422. package/utility/arrays.lua +28 -0
  423. package/utility/callback-array.d.ts +17 -0
  424. package/utility/callback-array.lua +61 -0
  425. package/utility/functions.d.ts +8 -0
  426. package/utility/functions.lua +13 -0
  427. package/utility/linked-map.d.ts +35 -0
  428. package/utility/linked-map.lua +107 -0
  429. package/utility/linked-set.d.ts +5 -1
  430. package/utility/linked-set.lua +49 -1
  431. package/utility/lua-maps.d.ts +15 -2
  432. package/utility/lua-maps.lua +53 -2
  433. package/utility/lua-sets.d.ts +2 -0
  434. package/utility/lua-sets.lua +7 -0
  435. package/utility/random.d.ts +102 -0
  436. package/utility/random.lua +273 -0
  437. package/utility/records.lua +20 -1
  438. package/utility/reflection.lua +11 -7
  439. package/utility/types.d.ts +3 -0
  440. package/utility/unordered-map.d.ts +27 -0
  441. package/utility/unordered-map.lua +99 -0
  442. package/core/types/order.d.ts +0 -25
  443. package/core/types/order.lua +0 -55
  444. package/engine/internal/unit/item.lua +0 -84
  445. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  446. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  447. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  448. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,9 +1,22 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__New = ____lualib.__TS__New
5
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
3
6
  local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
4
7
  local ____exports = {}
5
8
  local ____color = require("core.types.color")
6
9
  local Color = ____color.Color
10
+ local ____timer = require("core.types.timer")
11
+ local Timer = ____timer.Timer
12
+ local ____destroyable = require("destroyable")
13
+ local AbstractDestroyable = ____destroyable.AbstractDestroyable
14
+ local ____playerCamera = require("core.types.playerCamera")
15
+ local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
16
+ local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
17
+ local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
18
+ local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
19
+ local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
7
20
  local createTextTag = CreateTextTag
8
21
  local destroyTextTag = DestroyTextTag
9
22
  local setTextTagText = SetTextTagText
@@ -17,17 +30,16 @@ local setTextTagPermanent = SetTextTagPermanent
17
30
  local setTextTagAge = SetTextTagAge
18
31
  local setTextTagLifespan = SetTextTagLifespan
19
32
  local setTextTagFadepoint = SetTextTagFadepoint
33
+ local isUnitHidden = IsUnitHidden
34
+ local isUnitLoaded = IsUnitLoaded
35
+ local isUnitVisible = IsUnitVisible
36
+ local getUnitFlyHeight = GetUnitFlyHeight
37
+ local getUnitX = GetUnitX
38
+ local getUnitY = GetUnitY
39
+ local unitAlive = UnitAlive
20
40
  local DEFAULT_FONT_SIZE = 0.024
21
- ____exports.TextTag = __TS__Class()
22
- local TextTag = ____exports.TextTag
23
- TextTag.name = "TextTag"
24
- function TextTag.prototype.____constructor(self, handle)
25
- self.handle = handle
26
- end
27
- function TextTag.flash(self, configuration, text, x, y, z)
28
- local textTag = createTextTag()
29
- setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
30
- setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
41
+ local VISIBILITY_CHECK_INTERVAL = 4
42
+ local function applyConfiguration(textTag, configuration)
31
43
  setTextTagFadepoint(textTag, configuration.fadepoint)
32
44
  setTextTagLifespan(textTag, configuration.lifespan)
33
45
  local color = configuration.color
@@ -42,6 +54,229 @@ function TextTag.flash(self, configuration, text, x, y, z)
42
54
  setTextTagPermanent(textTag, false)
43
55
  setTextTagVisibility(textTag, true)
44
56
  end
57
+ local unitTextTags = setmetatable({}, {__mode = "k"})
58
+ local nextVisibilityCheckPhase = 0
59
+ local function ensureHandle(textTag)
60
+ local handle = textTag[101]
61
+ if handle == nil then
62
+ handle = createTextTag()
63
+ applyConfiguration(handle, textTag[102])
64
+ setTextTagPermanent(handle, true)
65
+ setTextTagText(handle, textTag[103] or "", textTag[104] or DEFAULT_FONT_SIZE)
66
+ local color = textTag[105]
67
+ if color ~= nil then
68
+ setTextTagColor(
69
+ handle,
70
+ color.r,
71
+ color.g,
72
+ color.b,
73
+ color.a
74
+ )
75
+ end
76
+ local unit = textTag[100]
77
+ if unit ~= nil then
78
+ setTextTagPosUnit(handle, unit.handle, textTag[102].offsetZ)
79
+ else
80
+ setTextTagPos(handle, textTag[106] or 0, textTag[107] or 0, 0)
81
+ end
82
+ textTag[101] = handle
83
+ end
84
+ return handle
85
+ end
86
+ ____exports.TextTag = __TS__Class()
87
+ local TextTag = ____exports.TextTag
88
+ TextTag.name = "TextTag"
89
+ __TS__ClassExtends(TextTag, AbstractDestroyable)
90
+ function TextTag.prototype.____constructor(self, handle)
91
+ AbstractDestroyable.prototype.____constructor(self)
92
+ self[101] = handle
93
+ end
94
+ function TextTag.prototype.onDestroy(self)
95
+ local handle = self[101]
96
+ if handle ~= nil then
97
+ destroyTextTag(handle)
98
+ self[101] = nil
99
+ end
100
+ unitTextTags[self] = nil
101
+ return AbstractDestroyable.prototype.onDestroy(self)
102
+ end
103
+ function TextTag.flash(self, configuration, text, x, y, z)
104
+ local textTag = createTextTag()
105
+ setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
106
+ setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
107
+ applyConfiguration(textTag, configuration)
108
+ end
109
+ function TextTag.create(self, configuration, text, unit)
110
+ local textTag = __TS__New(____exports.TextTag)
111
+ textTag[103] = text
112
+ textTag[100] = unit
113
+ textTag[102] = configuration
114
+ textTag[115] = nextVisibilityCheckPhase
115
+ nextVisibilityCheckPhase = (nextVisibilityCheckPhase + 1) % VISIBILITY_CHECK_INTERVAL
116
+ textTag[114] = true
117
+ unitTextTags[textTag] = true
118
+ return textTag
119
+ end
120
+ __TS__SetDescriptor(
121
+ TextTag.prototype,
122
+ "text",
123
+ {
124
+ get = function(self)
125
+ return self[103] or ""
126
+ end,
127
+ set = function(self, text)
128
+ if text == self[103] then
129
+ return
130
+ end
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
136
+ end
137
+ },
138
+ true
139
+ )
140
+ __TS__SetDescriptor(
141
+ TextTag.prototype,
142
+ "fontSize",
143
+ {
144
+ get = function(self)
145
+ return self[104] or DEFAULT_FONT_SIZE
146
+ end,
147
+ set = function(self, fontSize)
148
+ if fontSize == self[104] then
149
+ return
150
+ end
151
+ self[104] = fontSize
152
+ local handle = self[101]
153
+ if handle ~= nil then
154
+ setTextTagText(handle, self[103] or "", fontSize)
155
+ end
156
+ end
157
+ },
158
+ true
159
+ )
160
+ __TS__SetDescriptor(
161
+ TextTag.prototype,
162
+ "color",
163
+ {
164
+ get = function(self)
165
+ return self[105] or Color.white
166
+ end,
167
+ set = function(self, color)
168
+ if color == self[105] then
169
+ return
170
+ end
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
182
+ end
183
+ },
184
+ true
185
+ )
186
+ __TS__SetDescriptor(
187
+ TextTag.prototype,
188
+ "unit",
189
+ {
190
+ get = function(self)
191
+ return self[100]
192
+ end,
193
+ set = function(self, unit)
194
+ if unit ~= nil then
195
+ self[106] = nil
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
205
+ unitTextTags[self] = true
206
+ elseif self[100] ~= nil then
207
+ local unit = self[100]
208
+ local x = unit.x
209
+ local y = unit.y
210
+ setTextTagPos(
211
+ ensureHandle(self),
212
+ x,
213
+ y,
214
+ 0
215
+ )
216
+ self[106] = x
217
+ self[107] = y
218
+ unitTextTags[self] = nil
219
+ end
220
+ self[100] = unit
221
+ end
222
+ },
223
+ true
224
+ )
225
+ __TS__SetDescriptor(
226
+ TextTag.prototype,
227
+ "x",
228
+ {
229
+ get = function(self)
230
+ local ____self__106_2 = self[106]
231
+ if ____self__106_2 == nil then
232
+ local ____opt_0 = self[100]
233
+ ____self__106_2 = ____opt_0 and ____opt_0.x
234
+ end
235
+ return ____self__106_2 or 0
236
+ end,
237
+ set = function(self, x)
238
+ local ____ensureHandle_result_6 = ensureHandle(self)
239
+ local ____x_7 = x
240
+ local ____self__107_5 = self[107]
241
+ if ____self__107_5 == nil then
242
+ local ____opt_3 = self[100]
243
+ ____self__107_5 = ____opt_3 and ____opt_3.y
244
+ end
245
+ setTextTagPos(____ensureHandle_result_6, ____x_7, ____self__107_5 or 0, 0)
246
+ self[106] = x
247
+ self[100] = nil
248
+ unitTextTags[self] = nil
249
+ end
250
+ },
251
+ true
252
+ )
253
+ __TS__SetDescriptor(
254
+ TextTag.prototype,
255
+ "y",
256
+ {
257
+ get = function(self)
258
+ local ____self__107_10 = self[107]
259
+ if ____self__107_10 == nil then
260
+ local ____opt_8 = self[100]
261
+ ____self__107_10 = ____opt_8 and ____opt_8.y
262
+ end
263
+ return ____self__107_10 or 0
264
+ end,
265
+ set = function(self, y)
266
+ local ____ensureHandle_result_14 = ensureHandle(self)
267
+ local ____self__106_13 = self[106]
268
+ if ____self__106_13 == nil then
269
+ local ____opt_11 = self[100]
270
+ ____self__106_13 = ____opt_11 and ____opt_11.x
271
+ end
272
+ setTextTagPos(____ensureHandle_result_14, ____self__106_13 or 0, y, 0)
273
+ self[107] = y
274
+ self[100] = nil
275
+ unitTextTags[self] = nil
276
+ end
277
+ },
278
+ true
279
+ )
45
280
  TextTag.BASE = {
46
281
  fadepoint = 2,
47
282
  lifespan = 3,
@@ -106,4 +341,46 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
106
341
  lifespan = 5
107
342
  }
108
343
  )
344
+ local visibilityCheckPhase = 0
345
+ Timer.onPeriod[1 / 64]:addListener(function()
346
+ visibilityCheckPhase = (visibilityCheckPhase + 1) % VISIBILITY_CHECK_INTERVAL
347
+ for textTag in pairs(unitTextTags) do
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
383
+ end
384
+ end
385
+ end)
109
386
  return ____exports
package/engine/unit.d.ts CHANGED
@@ -1,10 +1,15 @@
1
1
  /** @noSelfInFile */
2
2
  import "./internal/unit";
3
+ import "./internal/unit/order";
3
4
  import "./internal/unit/ability";
5
+ import "./internal/unit/appearance";
6
+ import "./internal/unit/extended-inventory";
7
+ import "./internal/unit/equipment-inventory";
4
8
  import "./internal/unit/allowed-targets";
5
9
  import "./internal/unit/buff";
6
10
  import "./internal/unit/expiration-timer";
7
- import "./internal/unit/item";
11
+ import "./internal/unit/inventory";
12
+ import "./internal/unit/item-order-events";
8
13
  import "./internal/unit+ability";
9
14
  import "./internal/unit+damage";
10
15
  import "./internal/unit+rally";
@@ -17,6 +22,12 @@ import "./internal/unit/ghost-counter";
17
22
  import "./internal/unit/invulnerability-counter";
18
23
  import "./internal/unit/detach-missiles";
19
24
  import "./internal/unit/main-selected";
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";
20
31
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
21
32
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
22
33
  export * from "./internal/unit+damage";
package/engine/unit.lua CHANGED
@@ -1,10 +1,15 @@
1
1
  local ____exports = {}
2
2
  require("engine.internal.unit")
3
+ require("engine.internal.unit.order")
3
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")
4
8
  require("engine.internal.unit.allowed-targets")
5
9
  require("engine.internal.unit.buff")
6
10
  require("engine.internal.unit.expiration-timer")
7
- require("engine.internal.unit.item")
11
+ require("engine.internal.unit.inventory")
12
+ require("engine.internal.unit.item-order-events")
8
13
  require("engine.internal.unit+ability")
9
14
  require("engine.internal.unit+damage")
10
15
  require("engine.internal.unit+rally")
@@ -17,6 +22,12 @@ require("engine.internal.unit.ghost-counter")
17
22
  require("engine.internal.unit.invulnerability-counter")
18
23
  require("engine.internal.unit.detach-missiles")
19
24
  require("engine.internal.unit.main-selected")
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")
20
31
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
21
32
  do
22
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/net/socket.lua CHANGED
@@ -28,13 +28,13 @@ function Socket.prototype.____constructor(self)
28
28
  onReceive[self[0]]:addListener(function(sender, data)
29
29
  local chunks = chunksByPlayer[sender]
30
30
  if chunks ~= nil then
31
+ chunksByPlayer[sender] = nil
31
32
  chunks[#chunks + 1] = data
32
33
  Event.invoke(
33
34
  self.onMessage,
34
35
  sender,
35
36
  tableConcat(chunks)
36
37
  )
37
- chunksByPlayer[sender] = nil
38
38
  else
39
39
  Event.invoke(self.onMessage, sender, data)
40
40
  end
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()
package/objutil/buff.lua CHANGED
@@ -20,7 +20,6 @@ local AbilityDefinitionInnerFire = ____ability.AbilityDefinitionInnerFire
20
20
  local AbilityDefinitionSearingArrows = ____ability.AbilityDefinitionSearingArrows
21
21
  local AbilityDefinitionSlowPoison = ____ability.AbilityDefinitionSlowPoison
22
22
  local ____unit = require("core.types.unit")
23
- local AttackType = ____unit.AttackType
24
23
  local DamageType = ____unit.DamageType
25
24
  local Unit = ____unit.Unit
26
25
  local ____dummy = require("core.dummy")
@@ -30,6 +29,8 @@ local ____timer = require("core.types.timer")
30
29
  local Timer = ____timer.Timer
31
30
  local ____exception = require("exception")
32
31
  local IllegalStateException = ____exception.IllegalStateException
32
+ local ____linked_2Dmap = require("utility.linked-map")
33
+ local LinkedMap = ____linked_2Dmap.LinkedMap
33
34
  local ____assert = _G.assert
34
35
  local ____pairs = _G.pairs
35
36
  ____exports.BuffDefinition = __TS__Class()
@@ -462,7 +463,7 @@ local buffs = setmetatable(
462
463
  {
463
464
  __mode = "k",
464
465
  __index = function(self, unit)
465
- local ____table = {}
466
+ local ____table = __TS__New(LinkedMap)
466
467
  self[unit] = ____table
467
468
  return ____table
468
469
  end
@@ -495,7 +496,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
495
496
  end
496
497
  local constructor = self.constructor
497
498
  local instances = buffs[unit]
498
- local instance = instances[constructor]
499
+ local instance = instances:get(constructor)
499
500
  if instance then
500
501
  instance:destroy()
501
502
  if not instance.destroyed then
@@ -508,7 +509,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
508
509
  )
509
510
  end
510
511
  end
511
- instances[constructor] = self
512
+ instances:put(constructor, self)
512
513
  if preset then
513
514
  local unitHandle = unit.handle
514
515
  local slowPoisonMethod = not preset.positive and not preset.magic
@@ -526,7 +527,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
526
527
  ability:setField(ABILITY_RLF_DURATION_NORMAL, level, actualDuration)
527
528
  ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
528
529
  end,
529
- preset.positive and (preset.magic and orderId("innerfire") or 852609) or (preset.magic and orderId("cripple") or orderId("flamingarrowstarg")),
530
+ preset.positive and (preset.magic and 852066 or 852609) or (preset.magic and 852189 or 852173),
530
531
  unit
531
532
  )
532
533
  if slowPoisonMethod then
@@ -587,13 +588,13 @@ function Buff.apply(self, ...)
587
588
  end
588
589
  end
589
590
  function Buff.getInstance(self, unit)
590
- return buffs[unit][self]
591
+ return buffs[unit]:get(self)
591
592
  end
592
593
  function Buff.isApplied(self, unit)
593
- return buffs[unit][self] ~= nil
594
+ return buffs[unit]:get(self) ~= nil
594
595
  end
595
596
  function Buff.ifApplied(self, unit, action)
596
- local instance = buffs[unit][self]
597
+ local instance = buffs[unit]:get(self)
597
598
  if instance then
598
599
  ____assert(__TS__InstanceOf(instance, self))
599
600
  action(instance)
@@ -616,7 +617,7 @@ function Buff.prototype.destroy(self)
616
617
  if self.preset then
617
618
  self.unit:removeAbility(self.preset.buffId)
618
619
  end
619
- buffs[self.unit][self.constructor] = nil
620
+ buffs[self.unit]:remove(self.constructor)
620
621
  self.destroyed = true
621
622
  end
622
623
  function Buff.prototype.onDispel(self, source)
@@ -756,14 +757,14 @@ for ____, pointDispelAbilityId in ipairs(pointDispelAbilityIds) do
756
757
  end)
757
758
  end
758
759
  Unit.onDamaging:addListener(function(source, target, event)
759
- if event.amount == 0 and event.attackType == AttackType.SPELL and event.damageType == DamageType.NORMAL and not event.isAttack then
760
+ if event.amount == 0 and event.attackType == 0 and event.damageType == DamageType.NORMAL and not event.isAttack then
760
761
  Timer:run(function()
761
762
  checkBuffs(target, true, source)
762
763
  end)
763
764
  end
764
765
  end)
765
766
  Unit.itemPickedUpEvent:addListener(function(unit, item)
766
- if item.powerup and item:hasAbility(fourCC("APdi")) then
767
+ if item.isPowerUp and item:hasAbility(fourCC("APdi")) then
767
768
  end
768
769
  end)
769
770
  return ____exports
@@ -153,7 +153,7 @@ end
153
153
  function ObjectDefinition.getLevelArrayFieldValue(self, level, value, values)
154
154
  return type(values) == "function" and values(level, value) or (__TS__ArrayIsArray(values[1]) and values[1] or values)
155
155
  end
156
- ____exports.ObjectType = ObjectType or ({})
156
+ ____exports.ObjectType = ____exports.ObjectType or ({})
157
157
  ____exports.ObjectType.ABILITY = 0
158
158
  ____exports.ObjectType[____exports.ObjectType.ABILITY] = "ABILITY"
159
159
  ____exports.ObjectType.ITEM = 1
package/objutil/unit.lua CHANGED
@@ -11,6 +11,8 @@ local ____exports = {}
11
11
  local ____object = require("objutil.object")
12
12
  local ObjectDefinition = ____object.ObjectDefinition
13
13
  local idgen = require("objutil.idgen")
14
+ local ____config = require("config")
15
+ local WarscriptConfig = ____config.WarscriptConfig
14
16
  local attackTypes = setmetatable(
15
17
  {
16
18
  normal = "normal",
@@ -593,6 +595,9 @@ __TS__SetDescriptor(
593
595
  end,
594
596
  set = function(self, v)
595
597
  self:setStringField("umdl", v)
598
+ if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
599
+ self:setStringField("upor", "")
600
+ end
596
601
  end
597
602
  },
598
603
  true
@@ -606,6 +611,9 @@ __TS__SetDescriptor(
606
611
  end,
607
612
  set = function(self, v)
608
613
  self.object:setField("umdl:hd", v)
614
+ if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
615
+ self.object:setField("upor:hd", "")
616
+ end
609
617
  end
610
618
  },
611
619
  true
package/operation.d.ts CHANGED
@@ -16,9 +16,11 @@ export { OperationContinue };
16
16
  export declare abstract class Operation<T> {
17
17
  protected constructor();
18
18
  private started;
19
+ private settled;
20
+ private canceled;
19
21
  protected progress: number;
20
22
  protected maximum: number;
21
- isCanceled: boolean;
23
+ get isCanceled(): boolean;
22
24
  get isStarted(): boolean;
23
25
  execute(): OperationMonitor<T>;
24
26
  protected abstract estimate(): number | Promise<number>;
@@ -30,6 +32,11 @@ export declare abstract class Operation<T> {
30
32
  ...result: [success: true, result: T] | [success: false, reason?: any]
31
33
  ]>;
32
34
  get onProgress(): Event<[operation: Operation<T>]>;
35
+ /**
36
+ * Invoked with `isCanceled` already set. Should unblock any pending `estimate`/`work` promise
37
+ * (e.g. by rejecting it) and return whether cancellation is possible; on `false` the canceled
38
+ * state is reverted.
39
+ */
33
40
  protected abstract doCancel(): boolean;
34
41
  cancel(): boolean;
35
42
  }