warscript 0.0.1-dev.8bfb72f → 0.0.1-dev.8d8d605

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 (372) 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/types/effect.d.ts +1 -3
  6. package/core/types/effect.lua +26 -29
  7. package/core/types/frame.d.ts +1 -0
  8. package/core/types/frame.lua +136 -58
  9. package/core/types/handle.lua +9 -9
  10. package/core/types/item.d.ts +1 -0
  11. package/core/types/item.lua +1 -0
  12. package/core/types/player.d.ts +18 -1
  13. package/core/types/player.lua +76 -26
  14. package/core/types/playerCamera.d.ts +2 -0
  15. package/core/types/playerCamera.lua +123 -5
  16. package/core/types/playerColor.lua +4 -3
  17. package/core/types/sound.d.ts +18 -25
  18. package/core/types/sound.lua +113 -33
  19. package/core/types/tileCell.d.ts +11 -1
  20. package/core/types/tileCell.lua +97 -0
  21. package/core/types/timer.d.ts +9 -8
  22. package/core/types/timer.lua +45 -23
  23. package/core/types/unit.d.ts +4 -0
  24. package/core/types/unit.lua +4 -0
  25. package/core/util.lua +6 -1
  26. package/decl/native.d.ts +1718 -964
  27. package/destroyable.d.ts +1 -0
  28. package/destroyable.lua +9 -0
  29. package/engine/behavior.d.ts +14 -1
  30. package/engine/behavior.lua +230 -70
  31. package/engine/behaviour/ability/apply-buff.lua +5 -5
  32. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  33. package/engine/behaviour/ability/damage.d.ts +12 -3
  34. package/engine/behaviour/ability/damage.lua +40 -49
  35. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  36. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  37. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  38. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  39. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  40. package/engine/behaviour/ability/restore-mana.lua +6 -6
  41. package/engine/behaviour/ability.d.ts +16 -6
  42. package/engine/behaviour/ability.lua +67 -21
  43. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  44. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  45. package/engine/behaviour/unit.d.ts +41 -2
  46. package/engine/behaviour/unit.lua +270 -6
  47. package/engine/buff.d.ts +117 -60
  48. package/engine/buff.lua +587 -303
  49. package/engine/index.d.ts +2 -1
  50. package/engine/internal/ability.d.ts +11 -1
  51. package/engine/internal/ability.lua +100 -41
  52. package/engine/internal/item/ability.lua +63 -11
  53. package/engine/internal/item/fields.d.ts +12 -0
  54. package/engine/internal/item/fields.lua +33 -0
  55. package/engine/internal/item+owner.d.ts +1 -0
  56. package/engine/internal/item+owner.lua +19 -6
  57. package/engine/internal/item.d.ts +28 -16
  58. package/engine/internal/item.lua +265 -83
  59. package/engine/internal/mechanics/ability-duration.lua +1 -1
  60. package/engine/internal/mechanics/cast-ability.lua +6 -3
  61. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  62. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  63. package/engine/internal/misc/frame-coordinates.lua +21 -0
  64. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  65. package/engine/internal/misc/get-terrain-z.lua +11 -0
  66. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  67. package/engine/internal/misc/player-local-handle.lua +5 -0
  68. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  69. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  70. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  71. package/engine/internal/object-data/health-bonus.lua +16 -0
  72. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  73. package/engine/internal/object-data/mana-bonus.lua +16 -0
  74. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  75. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  76. package/engine/internal/unit/ability.d.ts +35 -0
  77. package/engine/internal/unit/ability.lua +113 -12
  78. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  79. package/engine/internal/unit/allowed-targets.lua +9 -1
  80. package/engine/internal/unit/appearance.d.ts +15 -0
  81. package/engine/internal/unit/appearance.lua +85 -0
  82. package/engine/internal/unit/attributes.d.ts +17 -0
  83. package/engine/internal/unit/attributes.lua +46 -0
  84. package/engine/internal/unit/bag.d.ts +18 -0
  85. package/engine/internal/unit/bag.lua +63 -0
  86. package/engine/internal/unit/bonus.d.ts +6 -0
  87. package/engine/internal/unit/bonus.lua +33 -3
  88. package/engine/internal/unit/buff.d.ts +2 -2
  89. package/engine/internal/unit/buff.lua +34 -19
  90. package/engine/internal/unit/equipment.d.ts +36 -0
  91. package/engine/internal/unit/equipment.lua +169 -0
  92. package/engine/internal/unit/fly-height.d.ts +7 -0
  93. package/engine/internal/unit/fly-height.lua +20 -0
  94. package/engine/internal/unit/interrupts.d.ts +12 -0
  95. package/engine/internal/unit/interrupts.lua +28 -0
  96. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +3 -3
  97. package/engine/internal/unit/{item.lua → inventory.lua} +25 -26
  98. package/engine/internal/unit/main-selected.lua +12 -27
  99. package/engine/internal/unit/order.d.ts +20 -0
  100. package/engine/internal/unit/order.lua +136 -0
  101. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  102. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  103. package/engine/internal/unit/range-event.d.ts +12 -0
  104. package/engine/internal/unit/range-event.lua +90 -0
  105. package/engine/internal/unit/scale.d.ts +7 -0
  106. package/engine/internal/unit/scale.lua +20 -0
  107. package/engine/internal/unit+ability.lua +10 -1
  108. package/engine/internal/unit+bonus.lua +3 -3
  109. package/engine/internal/unit+damage.d.ts +11 -11
  110. package/engine/internal/unit+damage.lua +43 -14
  111. package/engine/internal/unit+spellSteal.lua +1 -2
  112. package/engine/internal/unit-missile-data.lua +58 -32
  113. package/engine/internal/unit-missile-launch.lua +52 -14
  114. package/engine/internal/unit.d.ts +42 -25
  115. package/engine/internal/unit.lua +384 -265
  116. package/engine/lightning.d.ts +4 -3
  117. package/engine/lightning.lua +21 -12
  118. package/engine/local-client.d.ts +27 -0
  119. package/engine/local-client.lua +343 -54
  120. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  121. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  122. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  123. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  124. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  125. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  126. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  127. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  128. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  129. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  130. package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
  131. package/engine/object-data/auxiliary/equipment-type.lua +2 -0
  132. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  133. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  134. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  135. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  136. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  137. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  138. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  139. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  140. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  141. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  142. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  143. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  144. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  145. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  146. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  147. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  148. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  149. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  150. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  151. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  152. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  153. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  154. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  155. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  156. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  157. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  158. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  159. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  160. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  161. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  162. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  163. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  164. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  165. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  166. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  167. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  168. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  169. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  170. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  171. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  172. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  173. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  174. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  175. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  176. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  177. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  178. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  179. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  180. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  181. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  182. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  183. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  184. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  185. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  186. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  187. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  188. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  189. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  190. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  191. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  192. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  193. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  194. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  195. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  196. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  197. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  198. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  199. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  200. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  201. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  202. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  203. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  204. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  205. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  206. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  207. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  208. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  209. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  210. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  211. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  212. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  213. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  214. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  215. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  216. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  217. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  218. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  219. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  220. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  221. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  222. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  223. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  224. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  225. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  226. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  227. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  228. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  229. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  230. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  231. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  232. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  233. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  234. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  235. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  236. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  237. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  238. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  239. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  240. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  241. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  242. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  243. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  244. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  245. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  246. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  247. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  248. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  249. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  250. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  251. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  252. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  253. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  254. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  255. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  256. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  257. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  258. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  259. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  260. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  261. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  262. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  263. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  264. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  265. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  266. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  267. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  268. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  269. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  270. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  271. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  272. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  273. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  274. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  275. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  276. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  277. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  278. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  279. package/engine/object-data/entry/ability-type/web.lua +52 -0
  280. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  281. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  282. package/engine/object-data/entry/ability-type.d.ts +30 -19
  283. package/engine/object-data/entry/ability-type.lua +222 -28
  284. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  285. package/engine/object-data/entry/buff-type.d.ts +10 -12
  286. package/engine/object-data/entry/buff-type.lua +39 -29
  287. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  288. package/engine/object-data/entry/destructible-type.lua +181 -0
  289. package/engine/object-data/entry/item-type.d.ts +12 -3
  290. package/engine/object-data/entry/item-type.lua +56 -4
  291. package/engine/object-data/entry/lightning-type.d.ts +2 -2
  292. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  293. package/engine/object-data/entry/sound-preset.lua +140 -0
  294. package/engine/object-data/entry/unit-type.d.ts +71 -6
  295. package/engine/object-data/entry/unit-type.lua +592 -93
  296. package/engine/object-data/entry/upgrade.d.ts +2 -2
  297. package/engine/object-data/entry/upgrade.lua +4 -4
  298. package/engine/object-data/entry.d.ts +19 -14
  299. package/engine/object-data/entry.lua +60 -32
  300. package/engine/object-field/ability.d.ts +4 -4
  301. package/engine/object-field/ability.lua +9 -8
  302. package/engine/object-field/item.d.ts +22 -0
  303. package/engine/object-field/item.lua +118 -0
  304. package/engine/object-field/unit.d.ts +72 -3
  305. package/engine/object-field/unit.lua +268 -7
  306. package/engine/object-field.d.ts +26 -7
  307. package/engine/object-field.lua +360 -119
  308. package/engine/random.d.ts +10 -0
  309. package/engine/random.lua +21 -0
  310. package/engine/standard/entries/ability-type.d.ts +3102 -7
  311. package/engine/standard/entries/ability-type.lua +0 -6
  312. package/engine/standard/entries/buff-type.d.ts +3 -0
  313. package/engine/standard/entries/buff-type.lua +3 -0
  314. package/engine/standard/entries/item-type.d.ts +1299 -0
  315. package/engine/standard/entries/item-type.lua +2 -0
  316. package/engine/standard/entries/sound-preset.d.ts +10 -0
  317. package/engine/standard/entries/sound-preset.lua +10 -0
  318. package/engine/standard/entries/unit-type.d.ts +5 -0
  319. package/engine/standard/entries/unit-type.lua +5 -0
  320. package/engine/standard/fields/ability.d.ts +2 -2
  321. package/engine/standard/fields/ability.lua +2 -2
  322. package/engine/standard/fields/item.d.ts +4 -0
  323. package/engine/standard/fields/item.lua +6 -0
  324. package/engine/standard/fields/unit.d.ts +12 -0
  325. package/engine/standard/fields/unit.lua +20 -0
  326. package/engine/synchronization.d.ts +11 -0
  327. package/engine/synchronization.lua +77 -0
  328. package/engine/text-tag.d.ts +36 -2
  329. package/engine/text-tag.lua +250 -10
  330. package/engine/unit.d.ts +10 -1
  331. package/engine/unit.lua +10 -1
  332. package/event.d.ts +1 -1
  333. package/lualib_bundle.lua +1 -1
  334. package/math.d.ts +2 -0
  335. package/math.lua +14 -0
  336. package/net/socket.lua +1 -1
  337. package/network.lua +25 -1
  338. package/objutil/buff.lua +11 -10
  339. package/objutil/object.lua +1 -1
  340. package/objutil/unit.lua +8 -0
  341. package/operation.d.ts +8 -1
  342. package/operation.lua +38 -18
  343. package/package.json +3 -23
  344. package/patch-lua.lua +15 -0
  345. package/patch-lualib.lua +1 -1
  346. package/utility/arrays.d.ts +2 -0
  347. package/utility/arrays.lua +11 -0
  348. package/utility/callback-array.d.ts +17 -0
  349. package/utility/callback-array.lua +61 -0
  350. package/utility/functions.d.ts +8 -0
  351. package/utility/functions.lua +13 -0
  352. package/utility/linked-map.d.ts +35 -0
  353. package/utility/linked-map.lua +107 -0
  354. package/utility/linked-set.d.ts +5 -1
  355. package/utility/linked-set.lua +49 -1
  356. package/utility/lua-maps.d.ts +15 -2
  357. package/utility/lua-maps.lua +53 -2
  358. package/utility/lua-sets.d.ts +2 -0
  359. package/utility/lua-sets.lua +7 -0
  360. package/utility/random.d.ts +102 -0
  361. package/utility/random.lua +273 -0
  362. package/utility/records.lua +20 -1
  363. package/utility/reflection.lua +11 -7
  364. package/utility/types.d.ts +3 -0
  365. package/utility/unordered-map.d.ts +27 -0
  366. package/utility/unordered-map.lua +99 -0
  367. package/core/types/order.d.ts +0 -25
  368. package/core/types/order.lua +0 -55
  369. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  370. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  371. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  372. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,41 +1,96 @@
1
1
  local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
2
3
  local __TS__Class = ____lualib.__TS__Class
3
4
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
5
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
6
  local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
6
7
  local __TS__Delete = ____lualib.__TS__Delete
7
8
  local ____exports = {}
9
+ local invoke
8
10
  local ____handle = require("core.types.handle")
9
11
  local Handle = ____handle.Handle
10
12
  local ____color = require("core.types.color")
11
13
  local Color = ____color.Color
14
+ local ____event = require("event")
15
+ local Event = ____event.Event
16
+ local ____playerColor = require("core.types.playerColor")
17
+ local PlayerColor = ____playerColor.PlayerColor
12
18
  local ____rect = require("core.types.rect")
13
19
  local Rect = ____rect.Rect
14
20
  local ____ability = require("engine.internal.ability")
15
21
  local ItemAbility = ____ability.ItemAbility
16
22
  local ____ability = require("engine.internal.item.ability")
17
23
  local doAbilityAction = ____ability.doAbilityAction
24
+ local doAbilityActionForceDummy = ____ability.doAbilityActionForceDummy
25
+ local itemAbilityDummy = ____ability.itemAbilityDummy
18
26
  local ____dummy_2Ditem = require("engine.internal.object-data.dummy-item")
19
27
  local DUMMY_ITEM_ID = ____dummy_2Ditem.DUMMY_ITEM_ID
20
28
  local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
21
29
  local SLOT_FILLER_ITEM_TYPE_ID = ____add_2Ditem_2Dto_2Dslot.SLOT_FILLER_ITEM_TYPE_ID
22
- local itemAddAbility = BlzItemAddAbility
23
- local itemRemoveAbility = BlzItemRemoveAbility
30
+ local ____vec2 = require("math.vec2")
31
+ local distance = ____vec2.distance
32
+ local ____timer = require("core.types.timer")
33
+ local Timer = ____timer.Timer
34
+ local chooseRandomItemExWithFilter = ChooseRandomItemExWithFilter
35
+ local condition = Condition
36
+ local convertEquipmentType = ConvertEquipmentType
37
+ local convertItemTag = ConvertItemTag
38
+ local createTrigger = CreateTrigger
39
+ local destroyTrigger = DestroyTrigger
40
+ local enumItemsInRect = EnumItemsInRect
41
+ local getAbilityId = BlzGetAbilityId
42
+ local getEnumItem = GetEnumItem
43
+ local getHandleId = GetHandleId
24
44
  local getItemAbility = BlzGetItemAbility
25
- local isItemPowerup = IsItemPowerup
26
45
  local getItemAbilityByIndex = BlzGetItemAbilityByIndex
27
- local getAbilityId = BlzGetAbilityId
46
+ local getItemBooleanField = BlzGetItemBooleanField
47
+ local getItemCharges = GetItemCharges
48
+ local getItemEquipmentType = GetItemEquipmentType
49
+ local getItemIntegerField = BlzGetItemIntegerField
50
+ local getItemTag = GetItemTag
51
+ local getItemTypeId = GetItemTypeId
52
+ local getItemX = GetItemX
53
+ local getItemY = GetItemY
54
+ local getManipulatedItem = GetManipulatedItem
55
+ local getTriggerWidget = GetTriggerWidget
28
56
  local getWidgetLife = GetWidgetLife
57
+ local isItemEquipped = IsItemEquipped
58
+ local isItemInBag = IsItemInBag
59
+ local isItemPawnable = IsItemPawnable
60
+ local isItemPowerup = IsItemPowerup
61
+ local itemAddAbility = BlzItemAddAbility
62
+ local itemRemoveAbility = BlzItemRemoveAbility
63
+ local loadItemHandle = LoadItemHandle
29
64
  local removeItem = RemoveItem
30
- local getHandleId = GetHandleId
31
- local setRect = SetRect
32
- local enumItemsInRect = EnumItemsInRect
33
- local getEnumItem = GetEnumItem
34
- local getItemTypeId = GetItemTypeId
35
- local getItemIntegerField = BlzGetItemIntegerField
65
+ local saveWidgetHandle = SaveWidgetHandle
36
66
  local setItemBooleanField = BlzSetItemBooleanField
37
- local getItemBooleanField = BlzGetItemBooleanField
67
+ local setItemCharges = SetItemCharges
68
+ local setItemColor = SetItemColor
69
+ local setItemDropOnDeath = SetItemDropOnDeath
70
+ local setItemDroppable = SetItemDroppable
71
+ local setItemPawnable = SetItemPawnable
72
+ local setRect = SetRect
73
+ local triggerAddCondition = TriggerAddCondition
74
+ local triggerRegisterDeathEvent = TriggerRegisterDeathEvent
75
+ local unitRemoveAbility = UnitRemoveAbility
76
+ local unitRemoveItem = UnitRemoveItem
77
+ local unitUseItem = UnitUseItem
78
+ local unitUseItemPoint = UnitUseItemPoint
79
+ local unitUseItemTarget = UnitUseItemTarget
80
+ local tableRemove = table.remove
81
+ local itemChargesChangeEvent = __TS__New(Event)
82
+ local itemDeathEvent = __TS__New(Event)
83
+ _G.SetItemCharges = function(whichItem, charges)
84
+ setItemCharges(whichItem, charges)
85
+ invoke(
86
+ itemChargesChangeEvent,
87
+ ____exports.Item:of(whichItem)
88
+ )
89
+ end
90
+ invoke = Event.invoke
38
91
  local enumRect = Rect:create(0, 0, 0, 0).handle
92
+ ---
93
+ -- @internal For use by internal systems only.
39
94
  ____exports.addAndGetAbility = function(handle, abilityTypeId)
40
95
  if itemAddAbility(handle, abilityTypeId) then
41
96
  return getItemAbility(handle, abilityTypeId)
@@ -61,77 +116,182 @@ local function getItemAbilities(handle, item)
61
116
  end
62
117
  return abilities
63
118
  end
119
+ local function consumeCharge(handle)
120
+ do
121
+ local i = 0
122
+ local ability = getItemAbilityByIndex(handle, i)
123
+ while ability ~= nil do
124
+ unitRemoveAbility(
125
+ itemAbilityDummy,
126
+ getAbilityId(ability)
127
+ )
128
+ do
129
+ i = i + 1
130
+ ability = getItemAbilityByIndex(handle, i)
131
+ end
132
+ end
133
+ end
134
+ return unitUseItem(itemAbilityDummy, handle) or unitUseItemPoint(itemAbilityDummy, handle, 0, 0) or unitUseItemTarget(itemAbilityDummy, handle, itemAbilityDummy)
135
+ end
64
136
  local targetCollection
65
137
  local targetCollectionNextIndex
138
+ local centerX
139
+ local centerY
140
+ local enumRange
66
141
  local function collectIntoTarget()
67
142
  local item = getEnumItem()
68
143
  local typeId = getItemTypeId(item)
69
144
  if typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
70
- targetCollection[targetCollectionNextIndex] = ____exports.Item:of(getEnumItem())
145
+ targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
146
+ targetCollectionNextIndex = targetCollectionNextIndex + 1
147
+ end
148
+ end
149
+ local function collectIntoTargetRange()
150
+ local item = getEnumItem()
151
+ local typeId = getItemTypeId(item)
152
+ if distance(
153
+ getItemX(item),
154
+ getItemY(item),
155
+ centerX,
156
+ centerY
157
+ ) <= enumRange and typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
158
+ targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
71
159
  targetCollectionNextIndex = targetCollectionNextIndex + 1
72
160
  end
73
161
  end
162
+ local hashtable = InitHashtable()
163
+ local deathTriggerCondition = condition(function()
164
+ saveWidgetHandle(
165
+ hashtable,
166
+ 1,
167
+ 1,
168
+ getTriggerWidget()
169
+ )
170
+ local item = ____exports.Item:of(loadItemHandle(hashtable, 1, 1))
171
+ if item ~= nil then
172
+ invoke(itemDeathEvent, item)
173
+ end
174
+ end)
175
+ itemDeathEvent:addListener(
176
+ 999999,
177
+ function(item)
178
+ Timer:run(item, "destroy")
179
+ end
180
+ )
74
181
  ____exports.Item = __TS__Class()
75
182
  local Item = ____exports.Item
76
183
  Item.name = "Item"
77
184
  __TS__ClassExtends(Item, Handle)
78
185
  function Item.prototype.____constructor(self, handle)
79
186
  Handle.prototype.____constructor(self, handle)
80
- local abilities = doAbilityAction(handle, getItemAbilities, self)
81
- self[100] = abilities
82
- local luaIndexByAbilityTypeId = {}
83
- for i = 1, #abilities do
84
- luaIndexByAbilityTypeId[abilities[i].typeId] = i
85
- end
86
- self[101] = luaIndexByAbilityTypeId
187
+ self[100] = doAbilityAction(handle, getItemAbilities, self)
188
+ local deathTrigger = createTrigger()
189
+ triggerRegisterDeathEvent(deathTrigger, handle)
190
+ triggerAddCondition(deathTrigger, deathTriggerCondition)
191
+ self[101] = deathTrigger
87
192
  end
88
193
  function Item.prototype.onDestroy(self)
194
+ local owner = self.owner
195
+ if owner ~= nil then
196
+ unitRemoveItem(owner.handle, self.handle)
197
+ end
89
198
  local abilities = self[100]
90
199
  for i = 1, #abilities do
91
200
  abilities[i]:destroy()
92
201
  end
93
202
  removeItem(self.handle)
203
+ destroyTrigger(self[101])
94
204
  return Handle.prototype.onDestroy(self)
95
205
  end
96
206
  function Item.create(self, id, x, y, skinId)
97
207
  return self:of(BlzCreateItemWithSkin(id, x, y, skinId or id))
98
208
  end
209
+ function Item.getRandomTypeId(self, level, equipmentType, tag, itemType)
210
+ if equipmentType == nil then
211
+ equipmentType = 9
212
+ end
213
+ if tag == nil then
214
+ tag = 8
215
+ end
216
+ if itemType == nil then
217
+ itemType = ITEM_TYPE_ANY
218
+ end
219
+ local id = chooseRandomItemExWithFilter(
220
+ itemType,
221
+ level,
222
+ convertEquipmentType(equipmentType),
223
+ convertItemTag(tag)
224
+ )
225
+ return id ~= 0 and id or nil
226
+ end
227
+ function Item.prototype.consumeCharge(self)
228
+ return self:consumeCharges(1)
229
+ end
230
+ function Item.prototype.consumeCharges(self, count)
231
+ local handle = self.handle
232
+ local charges = getItemCharges(handle)
233
+ if charges > count then
234
+ setItemCharges(handle, charges - count)
235
+ invoke(itemChargesChangeEvent, self)
236
+ return true
237
+ end
238
+ if charges == count then
239
+ if getItemBooleanField(handle, ITEM_BF_PERISHABLE) then
240
+ self:destroy()
241
+ return true
242
+ end
243
+ if not getItemBooleanField(handle, ITEM_BF_ACTIVELY_USED) then
244
+ setItemCharges(handle, 0)
245
+ invoke(itemChargesChangeEvent, self)
246
+ return true
247
+ end
248
+ setItemCharges(handle, 1)
249
+ local ____doAbilityActionForceDummy_2 = doAbilityActionForceDummy
250
+ local ____opt_0 = self.owner
251
+ ____doAbilityActionForceDummy_2(handle, ____opt_0 and ____opt_0.handle, consumeCharge)
252
+ invoke(itemChargesChangeEvent, self)
253
+ return true
254
+ end
255
+ return false
256
+ end
99
257
  function Item.prototype.addAbility(self, abilityTypeId)
100
258
  local nativeAbility = doAbilityAction(self.handle, ____exports.addAndGetAbility, abilityTypeId)
101
259
  if nativeAbility ~= nil then
102
260
  local ability = ItemAbility:of(nativeAbility, abilityTypeId, self)
103
261
  local abilities = self[100]
104
- local luaIndex = #abilities + 1
105
- abilities[luaIndex] = ability
106
- self[101][abilityTypeId] = luaIndex
262
+ abilities[#abilities + 1] = ability
107
263
  return ability
108
264
  end
109
265
  return nil
110
266
  end
111
267
  function Item.prototype.removeAbility(self, abilityTypeId)
112
- local luaIndexByAbilityTypeId = self[101]
113
- local luaIndex = luaIndexByAbilityTypeId[abilityTypeId]
114
- if luaIndex ~= nil and doAbilityAction(self.handle, itemRemoveAbility, abilityTypeId) then
115
- luaIndexByAbilityTypeId[abilityTypeId] = nil
116
- local abilities = self[100]
117
- abilities[luaIndex]:destroy()
118
- local abilityTypeIdsLength = #abilities
119
- for j = luaIndex, abilityTypeIdsLength do
120
- abilities[j] = abilities[j + 1]
268
+ local abilities = self[100]
269
+ for i = 1, #abilities do
270
+ if abilities[i].typeId == abilityTypeId then
271
+ local ability = abilities[i]
272
+ tableRemove(abilities, i)
273
+ ability:destroy()
274
+ return true
121
275
  end
122
276
  end
123
- return false
277
+ return doAbilityAction(self.handle, itemRemoveAbility, abilityTypeId)
124
278
  end
125
279
  function Item.prototype.hasAbility(self, abilityTypeId)
126
- return self[101][abilityTypeId] ~= nil
280
+ return doAbilityAction(self.handle, getItemAbility, abilityTypeId) ~= nil
127
281
  end
128
282
  function Item.prototype.getAbility(self, abilityTypeId)
129
- local ability = self[101][abilityTypeId] ~= nil and doAbilityAction(self.handle, getItemAbility, abilityTypeId)
130
- return ability and ItemAbility:of(ability, abilityTypeId, self) or nil
283
+ return ItemAbility:of(
284
+ doAbilityAction(self.handle, getItemAbility, abilityTypeId),
285
+ abilityTypeId,
286
+ self
287
+ )
131
288
  end
132
289
  function Item.getInRange(self, x, y, range)
133
290
  targetCollection = {}
134
291
  targetCollectionNextIndex = 1
292
+ centerX = x
293
+ centerY = y
294
+ enumRange = range
135
295
  setRect(
136
296
  enumRect,
137
297
  x - range,
@@ -139,7 +299,7 @@ function Item.getInRange(self, x, y, range)
139
299
  x + range,
140
300
  y + range
141
301
  )
142
- enumItemsInRect(enumRect, nil, collectIntoTarget)
302
+ enumItemsInRect(enumRect, nil, collectIntoTargetRange)
143
303
  return targetCollection
144
304
  end
145
305
  function Item.getInRect(self, rect)
@@ -148,6 +308,52 @@ function Item.getInRect(self, rect)
148
308
  enumItemsInRect(rect.handle, nil, collectIntoTarget)
149
309
  return targetCollection
150
310
  end
311
+ __TS__SetDescriptor(
312
+ Item.prototype,
313
+ "isEquipped",
314
+ {get = function(self)
315
+ return isItemEquipped(self.handle)
316
+ end},
317
+ true
318
+ )
319
+ __TS__SetDescriptor(
320
+ Item.prototype,
321
+ "isInBag",
322
+ {get = function(self)
323
+ return isItemInBag(self.handle)
324
+ end},
325
+ true
326
+ )
327
+ __TS__SetDescriptor(
328
+ Item.prototype,
329
+ "equipmentType",
330
+ {get = function(self)
331
+ return getHandleId(getItemEquipmentType(self.handle))
332
+ end},
333
+ true
334
+ )
335
+ __TS__SetDescriptor(
336
+ Item.prototype,
337
+ "tag",
338
+ {get = function(self)
339
+ return getHandleId(getItemTag(self.handle))
340
+ end},
341
+ true
342
+ )
343
+ __TS__SetDescriptor(
344
+ Item.prototype,
345
+ "color",
346
+ {
347
+ get = function(self)
348
+ return self[102] or PlayerColor.red
349
+ end,
350
+ set = function(self, color)
351
+ setItemColor(self.handle, color.handle)
352
+ self[102] = color
353
+ end
354
+ },
355
+ true
356
+ )
151
357
  __TS__SetDescriptor(
152
358
  Item.prototype,
153
359
  "typeId",
@@ -236,65 +442,55 @@ __TS__SetDescriptor(
236
442
  )
237
443
  __TS__SetDescriptor(
238
444
  Item.prototype,
239
- "dropOnDeath",
240
- {
241
- get = function(self)
242
- return BlzGetItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
243
- end,
244
- set = function(self, v)
245
- SetItemDropOnDeath(self.handle, v)
246
- end
247
- },
248
- true
249
- )
250
- __TS__SetDescriptor(
251
- Item.prototype,
252
- "droppable",
445
+ "dropsOnDeath",
253
446
  {
254
447
  get = function(self)
255
- return BlzGetItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
448
+ return getItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
256
449
  end,
257
- set = function(self, v)
258
- SetItemDroppable(self.handle, v)
450
+ set = function(self, dropsOnDeath)
451
+ setItemDropOnDeath(self.handle, dropsOnDeath)
259
452
  end
260
453
  },
261
454
  true
262
455
  )
263
456
  __TS__SetDescriptor(
264
457
  Item.prototype,
265
- "pawnable",
458
+ "canBeDropped",
266
459
  {
267
460
  get = function(self)
268
- return IsItemPawnable(self.handle)
461
+ return getItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
269
462
  end,
270
- set = function(self, v)
271
- SetItemPawnable(self.handle, v)
463
+ set = function(self, canBeDropped)
464
+ setItemDroppable(self.handle, canBeDropped)
272
465
  end
273
466
  },
274
467
  true
275
468
  )
276
469
  __TS__SetDescriptor(
277
470
  Item.prototype,
278
- "perishable",
471
+ "perishes",
279
472
  {
280
473
  get = function(self)
281
- return BlzGetItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
474
+ return getItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
282
475
  end,
283
- set = function(self, v)
284
- BlzSetItemBooleanField(self.handle, ITEM_BF_PERISHABLE, v)
476
+ set = function(self, perishes)
477
+ local handle = self.handle
478
+ local powerUp = isItemPowerup(handle)
479
+ setItemBooleanField(handle, ITEM_BF_PERISHABLE, perishes)
480
+ setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerUp)
285
481
  end
286
482
  },
287
483
  true
288
484
  )
289
485
  __TS__SetDescriptor(
290
486
  Item.prototype,
291
- "powerup",
487
+ "isPowerUp",
292
488
  {
293
489
  get = function(self)
294
490
  return isItemPowerup(self.handle)
295
491
  end,
296
- set = function(self, v)
297
- setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, v)
492
+ set = function(self, isPowerUp)
493
+ setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, isPowerUp)
298
494
  end
299
495
  },
300
496
  true
@@ -328,22 +524,6 @@ __TS__SetDescriptor(
328
524
  },
329
525
  true
330
526
  )
331
- __TS__SetDescriptor(
332
- Item.prototype,
333
- "usable",
334
- {
335
- get = function(self)
336
- return getItemBooleanField(self.handle, ITEM_BF_ACTIVELY_USED)
337
- end,
338
- set = function(self, v)
339
- local handle = self.handle
340
- local powerup = isItemPowerup(handle)
341
- setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, v)
342
- setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerup)
343
- end
344
- },
345
- true
346
- )
347
527
  __TS__SetDescriptor(
348
528
  Item.prototype,
349
529
  "visible",
@@ -534,10 +714,11 @@ __TS__SetDescriptor(
534
714
  "charges",
535
715
  {
536
716
  get = function(self)
537
- return GetItemCharges(self.handle)
717
+ return getItemCharges(self.handle)
538
718
  end,
539
719
  set = function(self, v)
540
- SetItemCharges(self.handle, v)
720
+ setItemCharges(self.handle, v)
721
+ invoke(itemChargesChangeEvent, self)
541
722
  end
542
723
  },
543
724
  true
@@ -564,7 +745,8 @@ __TS__ObjectDefineProperty(
564
745
  return self.onDestroyEvent
565
746
  end}
566
747
  )
567
- local getManipulatedItem = GetManipulatedItem
748
+ Item.deathEvent = itemDeathEvent
749
+ Item.chargesChangedEvent = itemChargesChangeEvent
568
750
  local trigger = CreateTrigger()
569
751
  TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_PICKUP_ITEM)
570
752
  TriggerAddAction(
@@ -8,6 +8,6 @@ local DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD = ____ability.DURATION_NORMAL_AB
8
8
  -- @internal For use by internal systems only.
9
9
  ____exports.getAbilityDuration = function(ability, target)
10
10
  local level = ability.level
11
- return target ~= nil and target:hasClassification(UnitClassification.RESISTANT) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
11
+ return target ~= nil and (target.isHero or target:getField(UNIT_IF_LEVEL) >= 6 or target:hasClassification(UnitClassification.RESISTANT)) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
12
12
  end
13
13
  return ____exports
@@ -74,9 +74,12 @@ ____exports.castAbility = function(nativeUnit, abilityTypeId, prepareAbility, ..
74
74
  unitRemoveAbility(nativeUnit, INVENTORY_ABILITY_TYPE_ID)
75
75
  if latestInventoryAbilityTypeId ~= 0 then
76
76
  unitAddAbility(nativeUnit, latestInventoryAbilityTypeId)
77
- for slot, nativeItem in pairs(nativeItemBySlot) do
78
- unitAddItem(nativeUnit, nativeItem)
79
- unitDropItemSlot(nativeUnit, nativeItem, slot)
77
+ for slot = 0, inventorySize - 1 do
78
+ local nativeItem = nativeItemBySlot[slot]
79
+ if nativeItem ~= nil then
80
+ unitAddItem(nativeUnit, nativeItem)
81
+ unitDropItemSlot(nativeUnit, nativeItem, slot)
82
+ end
80
83
  end
81
84
  end
82
85
  end
@@ -0,0 +1,5 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal For use by internal systems only.
4
+ ____exports.damageMetadataByTarget = setmetatable({}, {__mode = "k"})
5
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,21 @@
1
+ local ____exports = {}
2
+ local getLocalClientWidth = BlzGetLocalClientWidth
3
+ local getLocalClientHeight = BlzGetLocalClientHeight
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.getFrameMinXMaxX = function()
7
+ local w = getLocalClientWidth()
8
+ local h = getLocalClientHeight()
9
+ local width4by3 = (w - h / 600 * 800) / 2
10
+ local pxtodpi = 0.6 / h
11
+ local minX = -width4by3 * pxtodpi
12
+ local maxX = minX + w * pxtodpi
13
+ return minX, maxX
14
+ end
15
+ ---
16
+ -- @internal For use by internal systems only.
17
+ ____exports.FRAME_MIN_Y = 0
18
+ ---
19
+ -- @internal For use by internal systems only.
20
+ ____exports.FRAME_MAX_Y = 0.6
21
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,11 @@
1
+ local ____exports = {}
2
+ local getLocationZ = GetLocationZ
3
+ local moveLocation = MoveLocation
4
+ local location = Location(0, 0)
5
+ ---
6
+ -- @internal For use by internal systems only.
7
+ ____exports.getTerrainZ = function(x, y)
8
+ moveLocation(location, x, y)
9
+ return getLocationZ(location)
10
+ end
11
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,5 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal For use by internal systems only.
4
+ ____exports.PLAYER_LOCAL_HANDLE = GetLocalPlayer()
5
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -1,6 +1,6 @@
1
1
  local ____exports = {}
2
- local ____attribute_2Dincrease = require("engine.object-data.entry.ability-type.attribute-increase")
3
- local AttributeBonusAbilityType = ____attribute_2Dincrease.AttributeBonusAbilityType
2
+ local ____attribute_2Dbonus = require("engine.object-data.entry.ability-type.attribute-bonus")
3
+ local AttributeBonusAbilityType = ____attribute_2Dbonus.AttributeBonusAbilityType
4
4
  ---
5
5
  -- @internal For use by internal systems.
6
6
  ____exports.ATTRIBUTE_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____health_2Dbonus = require("engine.object-data.entry.ability-type.health-bonus")
3
+ local HealthBonusAbilityType = ____health_2Dbonus.HealthBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = HealthBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.healthBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_LIFE_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dbonus = require("engine.object-data.entry.ability-type.mana-bonus")
3
+ local ManaBonusAbilityType = ____mana_2Dbonus.ManaBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.MANA_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.MANA_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_MANA_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dregeneration = require("engine.object-data.entry.ability-type.mana-regeneration")
3
+ local ManaRegenerationAbilityType = ____mana_2Dregeneration.ManaRegenerationAbilityType
4
+ ---
5
+ -- @internal For use by internal systems.
6
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaRegenerationAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaRegenerationRateIncreaseFactor = 4
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems.
15
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_ABILITY_FIELD = ABILITY_RLF_MANA_REGENERATION_BONUS_AS_FRACTION_OF_NORMAL
16
+ return ____exports