warscript 0.0.1-dev.20f0f7e → 0.0.1-dev.221cca4

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 (322) hide show
  1. package/attributes.d.ts +1 -0
  2. package/attributes.lua +9 -0
  3. package/core/types/effect.d.ts +11 -1
  4. package/core/types/effect.lua +43 -77
  5. package/core/types/frame.d.ts +1 -0
  6. package/core/types/frame.lua +112 -37
  7. package/core/types/handle.lua +9 -9
  8. package/core/types/item.d.ts +1 -0
  9. package/core/types/item.lua +1 -0
  10. package/core/types/player.d.ts +18 -1
  11. package/core/types/player.lua +73 -25
  12. package/core/types/playerColor.lua +4 -3
  13. package/core/types/sound.d.ts +1 -1
  14. package/core/types/sound.lua +14 -9
  15. package/core/types/tileCell.d.ts +2 -1
  16. package/core/types/tileCell.lua +5 -0
  17. package/core/types/timer.d.ts +3 -2
  18. package/core/types/timer.lua +8 -2
  19. package/core/types/unit.d.ts +5 -0
  20. package/core/types/unit.lua +5 -0
  21. package/core/util.d.ts +3 -1
  22. package/core/util.lua +109 -3
  23. package/decl/native.d.ts +705 -7
  24. package/destroyable.d.ts +1 -0
  25. package/destroyable.lua +9 -0
  26. package/engine/behavior.d.ts +10 -2
  27. package/engine/behavior.lua +157 -76
  28. package/engine/behaviour/ability/apply-buff.lua +4 -4
  29. package/engine/behaviour/ability/damage.d.ts +4 -0
  30. package/engine/behaviour/ability/damage.lua +19 -15
  31. package/engine/behaviour/ability/emulate-impact.lua +5 -4
  32. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  33. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  34. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  35. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  36. package/engine/behaviour/ability.d.ts +12 -6
  37. package/engine/behaviour/ability.lua +42 -1
  38. package/engine/behaviour/unit/stun-immunity.d.ts +9 -5
  39. package/engine/behaviour/unit/stun-immunity.lua +17 -7
  40. package/engine/behaviour/unit.d.ts +10 -3
  41. package/engine/behaviour/unit.lua +107 -24
  42. package/engine/buff.d.ts +73 -24
  43. package/engine/buff.lua +418 -166
  44. package/engine/index.d.ts +2 -1
  45. package/engine/internal/ability.d.ts +4 -0
  46. package/engine/internal/ability.lua +52 -33
  47. package/engine/internal/item/fields.d.ts +12 -0
  48. package/engine/internal/item/fields.lua +33 -0
  49. package/engine/internal/item/owner-cache.d.ts +5 -0
  50. package/engine/internal/item/owner-cache.lua +4 -0
  51. package/engine/internal/item+owner.d.ts +2 -0
  52. package/engine/internal/item+owner.lua +27 -4
  53. package/engine/internal/item.d.ts +28 -13
  54. package/engine/internal/item.lua +163 -59
  55. package/engine/internal/mechanics/cast-ability.lua +6 -3
  56. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  57. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  58. package/engine/internal/object-data/health-bonus.lua +16 -0
  59. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  60. package/engine/internal/object-data/health-regeneration-rate-increase.lua +21 -0
  61. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  62. package/engine/internal/object-data/mana-bonus.lua +16 -0
  63. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  64. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  65. package/engine/internal/unit/ability.d.ts +14 -14
  66. package/engine/internal/unit/ability.lua +86 -47
  67. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  68. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  69. package/engine/internal/unit/appearance.d.ts +15 -0
  70. package/engine/internal/unit/appearance.lua +85 -0
  71. package/engine/internal/unit/attributes.d.ts +17 -0
  72. package/engine/internal/unit/attributes.lua +46 -0
  73. package/engine/internal/unit/bonus.d.ts +8 -0
  74. package/engine/internal/unit/bonus.lua +43 -3
  75. package/engine/internal/unit/buff.d.ts +2 -2
  76. package/engine/internal/unit/buff.lua +34 -19
  77. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  78. package/engine/internal/unit/equipment-inventory.lua +233 -0
  79. package/engine/internal/unit/expiration-timer.lua +1 -1
  80. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  81. package/engine/internal/unit/extended-inventory.lua +99 -0
  82. package/engine/internal/unit/fly-height.d.ts +7 -0
  83. package/engine/internal/unit/fly-height.lua +20 -0
  84. package/engine/internal/unit/ignore-events-items.lua +10 -1
  85. package/engine/internal/unit/interrupts.d.ts +12 -0
  86. package/engine/internal/unit/interrupts.lua +28 -0
  87. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  88. package/engine/internal/unit/inventory.lua +87 -0
  89. package/engine/internal/unit/item-container.d.ts +25 -0
  90. package/engine/internal/unit/item-container.lua +11 -0
  91. package/engine/internal/unit/item-order-events.d.ts +17 -0
  92. package/engine/internal/unit/item-order-events.lua +67 -0
  93. package/engine/internal/unit/item-slot.d.ts +27 -0
  94. package/engine/internal/unit/item-slot.lua +92 -0
  95. package/engine/internal/unit/main-selected.lua +12 -27
  96. package/engine/internal/unit/order.d.ts +3 -3
  97. package/engine/internal/unit/order.lua +10 -10
  98. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  99. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  100. package/engine/internal/unit/range-event.d.ts +12 -0
  101. package/engine/internal/unit/range-event.lua +90 -0
  102. package/engine/internal/unit/scale.d.ts +7 -0
  103. package/engine/internal/unit/scale.lua +20 -0
  104. package/engine/internal/unit+ability.lua +2 -2
  105. package/engine/internal/unit+bonus.lua +3 -3
  106. package/engine/internal/unit+damage.d.ts +9 -0
  107. package/engine/internal/unit+damage.lua +33 -0
  108. package/engine/internal/unit+rally.lua +9 -31
  109. package/engine/internal/unit-missile-data.lua +58 -32
  110. package/engine/internal/unit-missile-launch.lua +64 -33
  111. package/engine/internal/unit.d.ts +16 -28
  112. package/engine/internal/unit.lua +178 -257
  113. package/engine/local-client.d.ts +28 -0
  114. package/engine/local-client.lua +324 -54
  115. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  116. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  117. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  118. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  119. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  120. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  121. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  122. package/engine/object-data/auxiliary/item-class.lua +2 -0
  123. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  124. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  125. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  126. package/engine/object-data/auxiliary/order-type.lua +2 -0
  127. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  128. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  129. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  130. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  131. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  132. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  133. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  134. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  135. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  136. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  137. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  138. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  139. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  140. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  141. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  142. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  143. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  144. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  145. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  146. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  147. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  148. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  149. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  150. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  151. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  152. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  153. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  154. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  155. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  156. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  157. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  158. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  159. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  160. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  161. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  162. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  163. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  164. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  165. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  166. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  167. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  168. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  169. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  170. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  171. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  172. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  173. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  174. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  175. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  176. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  177. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  178. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  179. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  180. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  181. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  182. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  183. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  184. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  185. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  186. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  187. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  188. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  189. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  190. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  191. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  192. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  193. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  194. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  195. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  196. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  197. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  198. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  199. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  200. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  201. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  202. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  203. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  204. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  205. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  206. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  207. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  208. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  209. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  210. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  211. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  212. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  213. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  214. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  215. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  216. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  217. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  218. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  219. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  220. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  221. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  222. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  223. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  224. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  225. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  226. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  227. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  228. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  229. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  230. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  231. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  232. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  233. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  234. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  235. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  236. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  237. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  238. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  239. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  240. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  241. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  242. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  243. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  244. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  245. package/engine/object-data/entry/ability-type.d.ts +12 -3
  246. package/engine/object-data/entry/ability-type.lua +141 -5
  247. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  248. package/engine/object-data/entry/buff-type.d.ts +6 -2
  249. package/engine/object-data/entry/buff-type.lua +26 -0
  250. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  251. package/engine/object-data/entry/destructible-type.lua +181 -0
  252. package/engine/object-data/entry/item-type.d.ts +18 -3
  253. package/engine/object-data/entry/item-type.lua +84 -0
  254. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  255. package/engine/object-data/entry/lightning-type.lua +1 -1
  256. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  257. package/engine/object-data/entry/unit-type.d.ts +51 -2
  258. package/engine/object-data/entry/unit-type.lua +415 -37
  259. package/engine/object-data/entry/upgrade.d.ts +2 -2
  260. package/engine/object-data/entry.d.ts +6 -1
  261. package/engine/object-data/entry.lua +8 -0
  262. package/engine/object-field/ability.lua +2 -2
  263. package/engine/object-field/item.d.ts +22 -0
  264. package/engine/object-field/item.lua +118 -0
  265. package/engine/object-field/unit.d.ts +20 -5
  266. package/engine/object-field/unit.lua +61 -0
  267. package/engine/object-field.d.ts +10 -2
  268. package/engine/object-field.lua +268 -123
  269. package/engine/random.d.ts +5 -0
  270. package/engine/random.lua +18 -0
  271. package/engine/standard/entries/ability-type.d.ts +3102 -7
  272. package/engine/standard/entries/ability-type.lua +0 -6
  273. package/engine/standard/entries/item-type.d.ts +1299 -0
  274. package/engine/standard/entries/item-type.lua +2 -0
  275. package/engine/standard/entries/lightning-type.d.ts +42 -15
  276. package/engine/standard/entries/lightning-type.lua +0 -14
  277. package/engine/standard/entries/unit-type.d.ts +5 -0
  278. package/engine/standard/entries/unit-type.lua +5 -0
  279. package/engine/standard/fields/ability.d.ts +2 -2
  280. package/engine/standard/fields/ability.lua +2 -2
  281. package/engine/standard/fields/item.d.ts +4 -0
  282. package/engine/standard/fields/item.lua +6 -0
  283. package/engine/standard/fields/unit.d.ts +11 -3
  284. package/engine/standard/fields/unit.lua +15 -2
  285. package/engine/synchronization.d.ts +11 -0
  286. package/engine/synchronization.lua +77 -0
  287. package/engine/text-tag.lua +3 -2
  288. package/engine/unit.d.ts +10 -1
  289. package/engine/unit.lua +10 -1
  290. package/event.d.ts +1 -1
  291. package/lualib_bundle.lua +1 -1
  292. package/math.d.ts +2 -0
  293. package/math.lua +14 -0
  294. package/net/socket.lua +1 -1
  295. package/network.lua +25 -1
  296. package/objutil/buff.lua +11 -9
  297. package/objutil/object.lua +1 -1
  298. package/operation.d.ts +8 -1
  299. package/operation.lua +38 -18
  300. package/package.json +3 -23
  301. package/patch-lua.lua +15 -0
  302. package/utility/arrays.d.ts +1 -0
  303. package/utility/arrays.lua +8 -0
  304. package/utility/callback-array.d.ts +5 -1
  305. package/utility/callback-array.lua +16 -1
  306. package/utility/linked-map.d.ts +35 -0
  307. package/utility/linked-map.lua +107 -0
  308. package/utility/linked-set.d.ts +4 -1
  309. package/utility/linked-set.lua +46 -1
  310. package/utility/lua-maps.d.ts +11 -2
  311. package/utility/lua-maps.lua +33 -2
  312. package/utility/random.d.ts +102 -0
  313. package/utility/random.lua +273 -0
  314. package/utility/records.lua +20 -1
  315. package/utility/types.d.ts +3 -0
  316. package/utility/unordered-map.d.ts +27 -0
  317. package/utility/unordered-map.lua +99 -0
  318. package/engine/internal/unit/item.lua +0 -78
  319. /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
  320. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  321. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  322. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -13,6 +13,8 @@ local ____color = require("core.types.color")
13
13
  local Color = ____color.Color
14
14
  local ____event = require("event")
15
15
  local Event = ____event.Event
16
+ local ____playerColor = require("core.types.playerColor")
17
+ local PlayerColor = ____playerColor.PlayerColor
16
18
  local ____rect = require("core.types.rect")
17
19
  local Rect = ____rect.Rect
18
20
  local ____ability = require("engine.internal.ability")
@@ -27,30 +29,58 @@ local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slo
27
29
  local SLOT_FILLER_ITEM_TYPE_ID = ____add_2Ditem_2Dto_2Dslot.SLOT_FILLER_ITEM_TYPE_ID
28
30
  local ____vec2 = require("math.vec2")
29
31
  local distance = ____vec2.distance
30
- local itemChargesChangeEvent = __TS__New(Event)
31
- local itemAddAbility = BlzItemAddAbility
32
- local itemRemoveAbility = BlzItemRemoveAbility
33
- local getItemAbility = BlzGetItemAbility
34
- local isItemPowerup = IsItemPowerup
35
- local getItemAbilityByIndex = BlzGetItemAbilityByIndex
36
- local getAbilityId = BlzGetAbilityId
37
- local getWidgetLife = GetWidgetLife
38
- local removeItem = RemoveItem
39
- local getHandleId = GetHandleId
40
- local setRect = SetRect
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
41
40
  local enumItemsInRect = EnumItemsInRect
41
+ local getAbilityId = BlzGetAbilityId
42
42
  local getEnumItem = GetEnumItem
43
+ local getHandleId = GetHandleId
44
+ local getItemAbility = BlzGetItemAbility
45
+ local getItemAbilityByIndex = BlzGetItemAbilityByIndex
46
+ local getItemBooleanField = BlzGetItemBooleanField
47
+ local getItemCharges = GetItemCharges
48
+ local getItemEquipmentType = GetItemEquipmentType
49
+ local getItemIntegerField = BlzGetItemIntegerField
50
+ local getItemTag = GetItemTag
43
51
  local getItemTypeId = GetItemTypeId
44
52
  local getItemX = GetItemX
45
53
  local getItemY = GetItemY
46
- local getItemCharges = GetItemCharges
54
+ local getManipulatedItem = GetManipulatedItem
55
+ local getTriggerWidget = GetTriggerWidget
56
+ local getWidgetLife = GetWidgetLife
57
+ local isItemEquipped = IsItemEquipped
58
+ local isItemInBag = IsItemInBag
59
+ local isItemOwned = IsItemOwned
60
+ local isItemPawnable = IsItemPawnable
61
+ local isItemPowerup = IsItemPowerup
62
+ local itemAddAbility = BlzItemAddAbility
63
+ local itemRemoveAbility = BlzItemRemoveAbility
64
+ local loadItemHandle = LoadItemHandle
65
+ local removeItem = RemoveItem
66
+ local saveWidgetHandle = SaveWidgetHandle
67
+ local setItemBooleanField = BlzSetItemBooleanField
47
68
  local setItemCharges = SetItemCharges
69
+ local setItemColor = SetItemColor
70
+ local setItemDropOnDeath = SetItemDropOnDeath
71
+ local setItemDroppable = SetItemDroppable
72
+ local setItemPawnable = SetItemPawnable
73
+ local setRect = SetRect
74
+ local triggerAddCondition = TriggerAddCondition
75
+ local triggerRegisterDeathEvent = TriggerRegisterDeathEvent
48
76
  local unitRemoveAbility = UnitRemoveAbility
49
77
  local unitRemoveItem = UnitRemoveItem
50
78
  local unitUseItem = UnitUseItem
51
79
  local unitUseItemPoint = UnitUseItemPoint
52
80
  local unitUseItemTarget = UnitUseItemTarget
53
81
  local tableRemove = table.remove
82
+ local itemChargesChangeEvent = __TS__New(Event)
83
+ local itemDeathEvent = __TS__New(Event)
54
84
  _G.SetItemCharges = function(whichItem, charges)
55
85
  setItemCharges(whichItem, charges)
56
86
  invoke(
@@ -58,9 +88,6 @@ _G.SetItemCharges = function(whichItem, charges)
58
88
  ____exports.Item:of(whichItem)
59
89
  )
60
90
  end
61
- local getItemIntegerField = BlzGetItemIntegerField
62
- local setItemBooleanField = BlzSetItemBooleanField
63
- local getItemBooleanField = BlzGetItemBooleanField
64
91
  invoke = Event.invoke
65
92
  local enumRect = Rect:create(0, 0, 0, 0).handle
66
93
  ---
@@ -133,6 +160,25 @@ local function collectIntoTargetRange()
133
160
  targetCollectionNextIndex = targetCollectionNextIndex + 1
134
161
  end
135
162
  end
163
+ local hashtable = InitHashtable()
164
+ local deathTriggerCondition = condition(function()
165
+ saveWidgetHandle(
166
+ hashtable,
167
+ 1,
168
+ 1,
169
+ getTriggerWidget()
170
+ )
171
+ local item = ____exports.Item:of(loadItemHandle(hashtable, 1, 1))
172
+ if item ~= nil then
173
+ invoke(itemDeathEvent, item)
174
+ end
175
+ end)
176
+ itemDeathEvent:addListener(
177
+ 999999,
178
+ function(item)
179
+ Timer:run(item, "destroy")
180
+ end
181
+ )
136
182
  ____exports.Item = __TS__Class()
137
183
  local Item = ____exports.Item
138
184
  Item.name = "Item"
@@ -140,6 +186,10 @@ __TS__ClassExtends(Item, Handle)
140
186
  function Item.prototype.____constructor(self, handle)
141
187
  Handle.prototype.____constructor(self, handle)
142
188
  self[100] = doAbilityAction(handle, getItemAbilities, self)
189
+ local deathTrigger = createTrigger()
190
+ triggerRegisterDeathEvent(deathTrigger, handle)
191
+ triggerAddCondition(deathTrigger, deathTriggerCondition)
192
+ self[101] = deathTrigger
143
193
  end
144
194
  function Item.prototype.onDestroy(self)
145
195
  local owner = self.owner
@@ -151,11 +201,27 @@ function Item.prototype.onDestroy(self)
151
201
  abilities[i]:destroy()
152
202
  end
153
203
  removeItem(self.handle)
204
+ destroyTrigger(self[101])
154
205
  return Handle.prototype.onDestroy(self)
155
206
  end
156
207
  function Item.create(self, id, x, y, skinId)
157
208
  return self:of(BlzCreateItemWithSkin(id, x, y, skinId or id))
158
209
  end
210
+ function Item.getRandomTypeId(self, level, equipmentType, tag, itemType)
211
+ if tag == nil then
212
+ tag = 8
213
+ end
214
+ if itemType == nil then
215
+ itemType = ITEM_TYPE_ANY
216
+ end
217
+ local id = chooseRandomItemExWithFilter(
218
+ itemType,
219
+ level,
220
+ convertEquipmentType(equipmentType or 9),
221
+ convertItemTag(tag)
222
+ )
223
+ return id ~= 0 and id or nil
224
+ end
159
225
  function Item.prototype.consumeCharge(self)
160
226
  return self:consumeCharges(1)
161
227
  end
@@ -240,6 +306,70 @@ function Item.getInRect(self, rect)
240
306
  enumItemsInRect(rect.handle, nil, collectIntoTarget)
241
307
  return targetCollection
242
308
  end
309
+ __TS__SetDescriptor(
310
+ Item.prototype,
311
+ "isOwned",
312
+ {get = function(self)
313
+ local handle = self.handle
314
+ return isItemOwned(handle) or isItemInBag(handle) or isItemEquipped(handle)
315
+ end},
316
+ true
317
+ )
318
+ __TS__SetDescriptor(
319
+ Item.prototype,
320
+ "isInInventory",
321
+ {get = function(self)
322
+ local handle = self.handle
323
+ return isItemOwned(handle) and not isItemInBag(handle) and not isItemEquipped(handle)
324
+ end},
325
+ true
326
+ )
327
+ __TS__SetDescriptor(
328
+ Item.prototype,
329
+ "isInExtendedInventory",
330
+ {get = function(self)
331
+ return isItemInBag(self.handle)
332
+ end},
333
+ true
334
+ )
335
+ __TS__SetDescriptor(
336
+ Item.prototype,
337
+ "isInEquipmentInventory",
338
+ {get = function(self)
339
+ return isItemEquipped(self.handle)
340
+ end},
341
+ true
342
+ )
343
+ __TS__SetDescriptor(
344
+ Item.prototype,
345
+ "equipmentType",
346
+ {get = function(self)
347
+ return getHandleId(getItemEquipmentType(self.handle))
348
+ end},
349
+ true
350
+ )
351
+ __TS__SetDescriptor(
352
+ Item.prototype,
353
+ "tag",
354
+ {get = function(self)
355
+ return getHandleId(getItemTag(self.handle))
356
+ end},
357
+ true
358
+ )
359
+ __TS__SetDescriptor(
360
+ Item.prototype,
361
+ "color",
362
+ {
363
+ get = function(self)
364
+ return self[102] or PlayerColor.red
365
+ end,
366
+ set = function(self, color)
367
+ setItemColor(self.handle, color.handle)
368
+ self[102] = color
369
+ end
370
+ },
371
+ true
372
+ )
243
373
  __TS__SetDescriptor(
244
374
  Item.prototype,
245
375
  "typeId",
@@ -328,65 +458,55 @@ __TS__SetDescriptor(
328
458
  )
329
459
  __TS__SetDescriptor(
330
460
  Item.prototype,
331
- "dropOnDeath",
461
+ "dropsOnDeath",
332
462
  {
333
463
  get = function(self)
334
- return BlzGetItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
464
+ return getItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
335
465
  end,
336
- set = function(self, v)
337
- SetItemDropOnDeath(self.handle, v)
338
- end
339
- },
340
- true
341
- )
342
- __TS__SetDescriptor(
343
- Item.prototype,
344
- "droppable",
345
- {
346
- get = function(self)
347
- return BlzGetItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
348
- end,
349
- set = function(self, v)
350
- SetItemDroppable(self.handle, v)
466
+ set = function(self, dropsOnDeath)
467
+ setItemDropOnDeath(self.handle, dropsOnDeath)
351
468
  end
352
469
  },
353
470
  true
354
471
  )
355
472
  __TS__SetDescriptor(
356
473
  Item.prototype,
357
- "pawnable",
474
+ "canBeDropped",
358
475
  {
359
476
  get = function(self)
360
- return IsItemPawnable(self.handle)
477
+ return getItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
361
478
  end,
362
- set = function(self, v)
363
- SetItemPawnable(self.handle, v)
479
+ set = function(self, canBeDropped)
480
+ setItemDroppable(self.handle, canBeDropped)
364
481
  end
365
482
  },
366
483
  true
367
484
  )
368
485
  __TS__SetDescriptor(
369
486
  Item.prototype,
370
- "perishable",
487
+ "perishes",
371
488
  {
372
489
  get = function(self)
373
490
  return getItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
374
491
  end,
375
- set = function(self, v)
376
- BlzSetItemBooleanField(self.handle, ITEM_BF_PERISHABLE, v)
492
+ set = function(self, perishes)
493
+ local handle = self.handle
494
+ local powerUp = isItemPowerup(handle)
495
+ setItemBooleanField(handle, ITEM_BF_PERISHABLE, perishes)
496
+ setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerUp)
377
497
  end
378
498
  },
379
499
  true
380
500
  )
381
501
  __TS__SetDescriptor(
382
502
  Item.prototype,
383
- "powerup",
503
+ "isPowerUp",
384
504
  {
385
505
  get = function(self)
386
506
  return isItemPowerup(self.handle)
387
507
  end,
388
- set = function(self, v)
389
- setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, v)
508
+ set = function(self, isPowerUp)
509
+ setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, isPowerUp)
390
510
  end
391
511
  },
392
512
  true
@@ -420,22 +540,6 @@ __TS__SetDescriptor(
420
540
  },
421
541
  true
422
542
  )
423
- __TS__SetDescriptor(
424
- Item.prototype,
425
- "usable",
426
- {
427
- get = function(self)
428
- return getItemBooleanField(self.handle, ITEM_BF_ACTIVELY_USED)
429
- end,
430
- set = function(self, v)
431
- local handle = self.handle
432
- local powerup = isItemPowerup(handle)
433
- setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, v)
434
- setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerup)
435
- end
436
- },
437
- true
438
- )
439
543
  __TS__SetDescriptor(
440
544
  Item.prototype,
441
545
  "visible",
@@ -657,8 +761,8 @@ __TS__ObjectDefineProperty(
657
761
  return self.onDestroyEvent
658
762
  end}
659
763
  )
764
+ Item.deathEvent = itemDeathEvent
660
765
  Item.chargesChangedEvent = itemChargesChangeEvent
661
- local getManipulatedItem = GetManipulatedItem
662
766
  local trigger = CreateTrigger()
663
767
  TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_PICKUP_ITEM)
664
768
  TriggerAddAction(
@@ -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
@@ -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,21 @@
1
+ local ____exports = {}
2
+ local ____aura_2Dof_2Dblight = require("engine.object-data.entry.ability-type.aura-of-blight")
3
+ local AuraOfBlightAbilityType = ____aura_2Dof_2Dblight.AuraOfBlightAbilityType
4
+ local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
5
+ local combatClassificationsOf = ____combat_2Dclassification.combatClassificationsOf
6
+ ---
7
+ -- @internal For use by internal systems.
8
+ ____exports.HEALTH_REGENERATION_RATE_INCREASE_DUMMY_ABILITY_TYPE_ID = compiletime(function()
9
+ local abilityType = AuraOfBlightAbilityType:create()
10
+ abilityType.isInternal = true
11
+ abilityType.isButtonVisible = false
12
+ abilityType.healthRegeneration = 0
13
+ abilityType.isHealthRegenerationPercentage = false
14
+ abilityType.allowedTargetCombatClassifications = combatClassificationsOf(4096, 1048576, 2097152)
15
+ abilityType.buffTypeIds = {}
16
+ return abilityType.id
17
+ end)
18
+ ---
19
+ -- @internal For use by internal systems.
20
+ ____exports.HEALTH_REGENERATION_RATE_INCREASE_ABILITY_FIELD = ABILITY_RLF_AMOUNT_OF_HIT_POINTS_REGENERATED
21
+ 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
@@ -133,55 +133,55 @@ declare module "../unit" {
133
133
  }
134
134
  declare module "../unit" {
135
135
  namespace Unit {
136
- const abilityImpactEvent: DispatchingEvent<[Unit, Ability]>;
136
+ const abilityChannelingFinishEvent: DispatchingEvent<[Unit, Ability]>;
137
137
  }
138
138
  }
139
139
  declare module "../unit" {
140
140
  namespace Unit {
141
- const abilityWidgetTargetImpactEvent: DispatchingEvent<[Unit, Ability, Widget]>;
141
+ const abilityStopEvent: DispatchingEvent<[Unit, Ability]>;
142
142
  }
143
143
  }
144
144
  declare module "../unit" {
145
145
  namespace Unit {
146
- const abilityUnitTargetImpactEvent: DispatchingEvent<[Unit, Ability, Unit]>;
146
+ const abilityCommandEvent: {
147
+ readonly [abilityTypeId: number]: {
148
+ readonly [orderTypeStringId: string]: Event<[Unit, Ability, string]>;
149
+ };
150
+ };
147
151
  }
148
152
  }
149
153
  declare module "../unit" {
150
154
  namespace Unit {
151
- const abilityItemTargetImpactEvent: DispatchingEvent<[Unit, Ability, Item]>;
155
+ const abilityImpactEvent: DispatchingEvent<[Unit, Ability]>;
152
156
  }
153
157
  }
154
158
  declare module "../unit" {
155
159
  namespace Unit {
156
- const abilityDestructibleTargetImpactEvent: DispatchingEvent<[Unit, Ability, Destructable]>;
160
+ const abilityWidgetTargetImpactEvent: DispatchingEvent<[Unit, Ability, Widget]>;
157
161
  }
158
162
  }
159
163
  declare module "../unit" {
160
164
  namespace Unit {
161
- const abilityPointTargetImpactEvent: DispatchingEvent<[Unit, Ability, number, number]>;
165
+ const abilityUnitTargetImpactEvent: DispatchingEvent<[Unit, Ability, Unit]>;
162
166
  }
163
167
  }
164
168
  declare module "../unit" {
165
169
  namespace Unit {
166
- const abilityNoTargetImpactEvent: DispatchingEvent<[Unit, Ability]>;
170
+ const abilityItemTargetImpactEvent: DispatchingEvent<[Unit, Ability, Item]>;
167
171
  }
168
172
  }
169
173
  declare module "../unit" {
170
174
  namespace Unit {
171
- const abilityChannelingFinishEvent: DispatchingEvent<[Unit, Ability]>;
175
+ const abilityDestructibleTargetImpactEvent: DispatchingEvent<[Unit, Ability, Destructable]>;
172
176
  }
173
177
  }
174
178
  declare module "../unit" {
175
179
  namespace Unit {
176
- const abilityStopEvent: DispatchingEvent<[Unit, Ability]>;
180
+ const abilityPointTargetImpactEvent: DispatchingEvent<[Unit, Ability, number, number]>;
177
181
  }
178
182
  }
179
183
  declare module "../unit" {
180
184
  namespace Unit {
181
- const abilityCommandEvent: {
182
- readonly [abilityTypeId: number]: {
183
- readonly [orderTypeStringId: string]: Event<[Unit, Ability, string]>;
184
- };
185
- };
185
+ const abilityNoTargetImpactEvent: DispatchingEvent<[Unit, Ability]>;
186
186
  }
187
187
  }