warscript 0.0.1-dev.bb34489 → 0.0.1-dev.bc4cd10

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 (455) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/dummy.lua +4 -2
  8. package/core/types/effect.d.ts +24 -6
  9. package/core/types/effect.lua +169 -107
  10. package/core/types/frame.d.ts +9 -0
  11. package/core/types/frame.lua +193 -23
  12. package/core/types/handle.lua +11 -9
  13. package/core/types/item.d.ts +1 -0
  14. package/core/types/item.lua +1 -0
  15. package/core/types/player.d.ts +18 -1
  16. package/core/types/player.lua +76 -26
  17. package/core/types/playerCamera.d.ts +2 -0
  18. package/core/types/playerCamera.lua +123 -5
  19. package/core/types/playerColor.lua +4 -3
  20. package/core/types/sound.d.ts +18 -25
  21. package/core/types/sound.lua +113 -33
  22. package/core/types/tileCell.d.ts +11 -1
  23. package/core/types/tileCell.lua +97 -0
  24. package/core/types/timer.d.ts +9 -8
  25. package/core/types/timer.lua +45 -23
  26. package/core/types/unit.d.ts +5 -0
  27. package/core/types/unit.lua +5 -0
  28. package/core/util.d.ts +3 -1
  29. package/core/util.lua +127 -4
  30. package/decl/native.d.ts +1718 -964
  31. package/destroyable.d.ts +1 -0
  32. package/destroyable.lua +9 -0
  33. package/engine/behavior.d.ts +16 -3
  34. package/engine/behavior.lua +233 -73
  35. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  36. package/engine/behaviour/ability/always-enabled.lua +31 -0
  37. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  38. package/engine/behaviour/ability/apply-buff.lua +36 -4
  39. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  40. package/engine/behaviour/ability/damage.d.ts +43 -11
  41. package/engine/behaviour/ability/damage.lua +89 -39
  42. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  43. package/engine/behaviour/ability/emulate-impact.lua +44 -0
  44. package/engine/behaviour/ability/heal.d.ts +33 -6
  45. package/engine/behaviour/ability/heal.lua +89 -10
  46. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  47. package/engine/behaviour/ability/instant-impact.lua +4 -19
  48. package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
  49. package/engine/behaviour/ability/on-command-impact.lua +26 -0
  50. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  51. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  52. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  53. package/engine/behaviour/ability/restore-mana.lua +29 -0
  54. package/engine/behaviour/ability.d.ts +30 -7
  55. package/engine/behaviour/ability.lua +162 -43
  56. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  57. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  58. package/engine/behaviour/unit.d.ts +46 -2
  59. package/engine/behaviour/unit.lua +290 -6
  60. package/engine/buff.d.ts +166 -57
  61. package/engine/buff.lua +766 -274
  62. package/engine/game-map.d.ts +7 -0
  63. package/engine/game-map.lua +32 -0
  64. package/engine/index.d.ts +2 -1
  65. package/engine/internal/ability.d.ts +27 -14
  66. package/engine/internal/ability.lua +168 -104
  67. package/engine/internal/item/ability.lua +162 -4
  68. package/engine/internal/item/fields.d.ts +12 -0
  69. package/engine/internal/item/fields.lua +33 -0
  70. package/engine/internal/item/owner-cache.d.ts +5 -0
  71. package/engine/internal/item/owner-cache.lua +4 -0
  72. package/engine/internal/item+owner.d.ts +2 -0
  73. package/engine/internal/item+owner.lua +37 -8
  74. package/engine/internal/item.d.ts +34 -18
  75. package/engine/internal/item.lua +308 -102
  76. package/engine/internal/mechanics/ability-duration.lua +1 -1
  77. package/engine/internal/mechanics/cast-ability.lua +6 -3
  78. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  79. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  80. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  81. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  82. package/engine/internal/misc/frame-coordinates.lua +21 -0
  83. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  84. package/engine/internal/misc/get-terrain-z.lua +11 -0
  85. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  86. package/engine/internal/misc/player-local-handle.lua +5 -0
  87. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  88. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  89. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  90. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  91. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  92. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  93. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  94. package/engine/internal/object-data/evasion-probability.lua +16 -0
  95. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  96. package/engine/internal/object-data/health-bonus.lua +16 -0
  97. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  98. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  99. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  100. package/engine/internal/object-data/mana-bonus.lua +16 -0
  101. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  102. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  103. package/engine/internal/unit/ability.d.ts +45 -1
  104. package/engine/internal/unit/ability.lua +142 -19
  105. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  106. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  107. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  108. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  109. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  110. package/engine/internal/unit/allowed-targets.lua +9 -1
  111. package/engine/internal/unit/appearance.d.ts +15 -0
  112. package/engine/internal/unit/appearance.lua +85 -0
  113. package/engine/internal/unit/attributes.d.ts +17 -0
  114. package/engine/internal/unit/attributes.lua +46 -0
  115. package/engine/internal/unit/bonus.d.ts +20 -2
  116. package/engine/internal/unit/bonus.lua +125 -9
  117. package/engine/internal/unit/buff.d.ts +2 -2
  118. package/engine/internal/unit/buff.lua +34 -19
  119. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  120. package/engine/internal/unit/equipment-inventory.lua +233 -0
  121. package/engine/internal/unit/expiration-timer.lua +1 -1
  122. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  123. package/engine/internal/unit/extended-inventory.lua +99 -0
  124. package/engine/internal/unit/fly-height.d.ts +7 -0
  125. package/engine/internal/unit/fly-height.lua +20 -0
  126. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  127. package/engine/internal/unit/ignore-events-items.lua +14 -0
  128. package/engine/internal/unit/interrupts.d.ts +12 -0
  129. package/engine/internal/unit/interrupts.lua +28 -0
  130. package/engine/internal/unit/inventory.d.ts +28 -0
  131. package/engine/internal/unit/inventory.lua +87 -0
  132. package/engine/internal/unit/item-container.d.ts +25 -0
  133. package/engine/internal/unit/item-container.lua +11 -0
  134. package/engine/internal/unit/item-order-events.d.ts +17 -0
  135. package/engine/internal/unit/item-order-events.lua +67 -0
  136. package/engine/internal/unit/item-slot.d.ts +27 -0
  137. package/engine/internal/unit/item-slot.lua +92 -0
  138. package/engine/internal/unit/main-selected.d.ts +13 -0
  139. package/engine/internal/unit/main-selected.lua +36 -0
  140. package/engine/internal/unit/order.d.ts +20 -0
  141. package/engine/internal/unit/order.lua +136 -0
  142. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  143. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  144. package/engine/internal/unit/range-event.d.ts +12 -0
  145. package/engine/internal/unit/range-event.lua +90 -0
  146. package/engine/internal/unit/scale.d.ts +7 -0
  147. package/engine/internal/unit/scale.lua +20 -0
  148. package/engine/internal/unit+ability.d.ts +2 -1
  149. package/engine/internal/unit+ability.lua +75 -5
  150. package/engine/internal/unit+bonus.lua +3 -3
  151. package/engine/internal/unit+damage.d.ts +11 -11
  152. package/engine/internal/unit+damage.lua +43 -14
  153. package/engine/internal/unit+rally.lua +9 -31
  154. package/engine/internal/unit+spellSteal.lua +1 -2
  155. package/engine/internal/unit+transport.lua +4 -10
  156. package/engine/internal/unit-missile-data.lua +58 -32
  157. package/engine/internal/unit-missile-launch.lua +70 -13
  158. package/engine/internal/unit.d.ts +57 -31
  159. package/engine/internal/unit.lua +466 -308
  160. package/engine/internal/utility.lua +12 -0
  161. package/engine/lightning.d.ts +12 -5
  162. package/engine/lightning.lua +48 -14
  163. package/engine/local-client.d.ts +35 -2
  164. package/engine/local-client.lua +367 -15
  165. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  166. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  167. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  168. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  169. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  170. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  171. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  172. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  173. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  174. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  175. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  176. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  177. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  178. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  179. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  180. package/engine/object-data/auxiliary/item-class.lua +2 -0
  181. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  182. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  183. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  184. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  185. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  186. package/engine/object-data/auxiliary/order-type.lua +2 -0
  187. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  188. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  189. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  190. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  191. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  192. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  193. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  194. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  195. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  196. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  197. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  198. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  199. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  200. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  201. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  202. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  203. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  204. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  205. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  206. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  207. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  208. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  209. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  210. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  211. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  212. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  213. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  214. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  215. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  216. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  217. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  218. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  219. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  220. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  221. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  222. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  223. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  224. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  225. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  226. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  227. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  228. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  229. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  230. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  232. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  233. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  234. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  235. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  236. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  237. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  238. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  239. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  240. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  241. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  242. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  243. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  244. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  245. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  246. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  247. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  248. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  249. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  250. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  251. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  252. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  253. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  254. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  255. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  256. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  257. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  258. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  259. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  260. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  261. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  262. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  263. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  264. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  265. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  266. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  267. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  268. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  269. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  270. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  271. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  272. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  273. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  274. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  275. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  276. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  277. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  278. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  279. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  280. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  281. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  282. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  283. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  284. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  285. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  286. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  287. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  288. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  289. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  290. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  291. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  292. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  293. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  294. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  295. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  296. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  297. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  298. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  299. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  300. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  301. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  302. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  303. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  304. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  305. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  306. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  307. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  308. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  309. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  310. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  311. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  312. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  313. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  314. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  315. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  316. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  317. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  318. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  319. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  320. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  321. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  322. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  323. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  324. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  325. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  326. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  327. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  328. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  329. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  330. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  331. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  332. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  333. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  334. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  335. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  336. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  337. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  338. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  339. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  340. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  341. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  342. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  343. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  344. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  345. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  346. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  347. package/engine/object-data/entry/ability-type/web.lua +52 -0
  348. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  349. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  350. package/engine/object-data/entry/ability-type.d.ts +41 -20
  351. package/engine/object-data/entry/ability-type.lua +337 -44
  352. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  353. package/engine/object-data/entry/buff-type.d.ts +10 -12
  354. package/engine/object-data/entry/buff-type.lua +39 -29
  355. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  356. package/engine/object-data/entry/destructible-type.lua +181 -0
  357. package/engine/object-data/entry/item-type.d.ts +32 -3
  358. package/engine/object-data/entry/item-type.lua +177 -2
  359. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  360. package/engine/object-data/entry/lightning-type.lua +1 -1
  361. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  362. package/engine/object-data/entry/sound-preset.lua +140 -0
  363. package/engine/object-data/entry/unit-type.d.ts +71 -6
  364. package/engine/object-data/entry/unit-type.lua +592 -93
  365. package/engine/object-data/entry/upgrade.d.ts +2 -2
  366. package/engine/object-data/entry/upgrade.lua +4 -4
  367. package/engine/object-data/entry.d.ts +21 -14
  368. package/engine/object-data/entry.lua +68 -32
  369. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  370. package/engine/object-field/ability.d.ts +28 -5
  371. package/engine/object-field/ability.lua +61 -7
  372. package/engine/object-field/item.d.ts +22 -0
  373. package/engine/object-field/item.lua +118 -0
  374. package/engine/object-field/unit.d.ts +72 -3
  375. package/engine/object-field/unit.lua +268 -7
  376. package/engine/object-field.d.ts +26 -7
  377. package/engine/object-field.lua +362 -117
  378. package/engine/random.d.ts +10 -0
  379. package/engine/random.lua +21 -0
  380. package/engine/standard/entries/ability-type.d.ts +3102 -7
  381. package/engine/standard/entries/ability-type.lua +0 -6
  382. package/engine/standard/entries/buff-type.d.ts +48 -0
  383. package/engine/standard/entries/buff-type.lua +46 -0
  384. package/engine/standard/entries/item-type.d.ts +1299 -0
  385. package/engine/standard/entries/item-type.lua +2 -0
  386. package/engine/standard/entries/lightning-type.d.ts +42 -15
  387. package/engine/standard/entries/lightning-type.lua +0 -14
  388. package/engine/standard/entries/sound-preset.d.ts +10 -0
  389. package/engine/standard/entries/sound-preset.lua +10 -0
  390. package/engine/standard/entries/unit-type.d.ts +5 -0
  391. package/engine/standard/entries/unit-type.lua +5 -0
  392. package/engine/standard/fields/ability.d.ts +4 -2
  393. package/engine/standard/fields/ability.lua +4 -2
  394. package/engine/standard/fields/item.d.ts +4 -0
  395. package/engine/standard/fields/item.lua +6 -0
  396. package/engine/standard/fields/unit.d.ts +12 -0
  397. package/engine/standard/fields/unit.lua +20 -0
  398. package/engine/synchronization.d.ts +11 -0
  399. package/engine/synchronization.lua +77 -0
  400. package/engine/text-tag.d.ts +36 -2
  401. package/engine/text-tag.lua +250 -10
  402. package/engine/unit.d.ts +13 -0
  403. package/engine/unit.lua +13 -0
  404. package/event.d.ts +1 -1
  405. package/index.d.ts +1 -0
  406. package/index.lua +1 -0
  407. package/lualib_bundle.lua +8 -3
  408. package/math.d.ts +2 -0
  409. package/math.lua +14 -0
  410. package/net/socket.d.ts +7 -1
  411. package/net/socket.lua +45 -4
  412. package/network.d.ts +1 -0
  413. package/network.lua +28 -3
  414. package/objutil/buff.lua +13 -12
  415. package/objutil/object.lua +1 -1
  416. package/objutil/unit.lua +8 -0
  417. package/operation.d.ts +8 -1
  418. package/operation.lua +38 -18
  419. package/package.json +3 -23
  420. package/patch-lua.d.ts +0 -0
  421. package/patch-lua.lua +25 -0
  422. package/patch-lualib.lua +1 -1
  423. package/property.d.ts +55 -0
  424. package/property.lua +374 -0
  425. package/utility/arrays.d.ts +11 -1
  426. package/utility/arrays.lua +57 -3
  427. package/utility/callback-array.d.ts +17 -0
  428. package/utility/callback-array.lua +61 -0
  429. package/utility/functions.d.ts +8 -0
  430. package/utility/functions.lua +13 -0
  431. package/utility/lazy.d.ts +2 -0
  432. package/utility/lazy.lua +14 -0
  433. package/utility/linked-map.d.ts +35 -0
  434. package/utility/linked-map.lua +107 -0
  435. package/utility/linked-set.d.ts +16 -3
  436. package/utility/linked-set.lua +54 -3
  437. package/utility/lua-maps.d.ts +15 -2
  438. package/utility/lua-maps.lua +53 -2
  439. package/utility/lua-sets.d.ts +2 -0
  440. package/utility/lua-sets.lua +7 -0
  441. package/utility/random.d.ts +102 -0
  442. package/utility/random.lua +273 -0
  443. package/utility/records.lua +20 -1
  444. package/utility/reflection.lua +11 -7
  445. package/utility/types.d.ts +4 -0
  446. package/utility/unordered-map.d.ts +27 -0
  447. package/utility/unordered-map.lua +99 -0
  448. package/core/mapbounds.d.ts +0 -8
  449. package/core/mapbounds.lua +0 -12
  450. package/core/types/order.d.ts +0 -25
  451. package/core/types/order.lua +0 -55
  452. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  453. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  454. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  455. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,233 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__New = ____lualib.__TS__New
4
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
5
+ local ____exports = {}
6
+ local ____unit = require("engine.internal.unit")
7
+ local Unit = ____unit.Unit
8
+ local UnitTriggerEvent = ____unit.UnitTriggerEvent
9
+ local ____item = require("engine.internal.item")
10
+ local Item = ____item.Item
11
+ local ____event = require("event")
12
+ local IgnoreEvent = ____event.IgnoreEvent
13
+ local ____dummy = require("objutil.dummy")
14
+ local dummyUnitId = ____dummy.dummyUnitId
15
+ local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
16
+ local ignoreEventsItemTypeIds = ____ignore_2Devents_2Ditems.ignoreEventsItemTypeIds
17
+ local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
18
+ local ____blank = require("engine.object-data.entry.item-type.blank")
19
+ local BlankItemType = ____blank.BlankItemType
20
+ local convertEquipmentType = ConvertEquipmentType
21
+ local convertLoadoutSlot = ConvertLoadoutSlot
22
+ local getEquippedItem = GetEquippedItem
23
+ local getStackingItemSource = BlzGetStackingItemSource
24
+ local getStackingItemTarget = BlzGetStackingItemTarget
25
+ local getStackingItemTargetPreviousCharges = BlzGetStackingItemTargetPreviousCharges
26
+ local getTriggerUnit = GetTriggerUnit
27
+ local getUnequippedItem = GetUnequippedItem
28
+ local getUnitTypeId = GetUnitTypeId
29
+ local unitCanEquipItemOfEquipmentType = UnitCanEquipItemOfEquipmentType
30
+ local unitEquipItem = UnitEquipItem
31
+ local unitHasAnyItemEquiped = UnitHasAnyItemEquiped
32
+ local unitHasItemEquipmentOfType = UnitHasItemEquipmentOfType
33
+ local unitHasItemEquipped = UnitHasItemEquipped
34
+ local unitHasLoadoutSlotEmpty = UnitHasLoadoutSlotEmpty
35
+ local unitItemInEquipmentSlot = UnitItemInEquipmentSlot
36
+ local setItemVisible = SetItemVisible
37
+ local unitAddItem = UnitAddItem
38
+ local unitRemoveItem = UnitRemoveItem
39
+ local unitUnequipItem = UnitUnequipItem
40
+ local unitUnequipItemFromSlot = UnitUnequipItemFromSlot
41
+ local ____rawget = _G.rawget
42
+ local rawset = _G.rawset
43
+ local ____type = _G.type
44
+ local EQUIPMENT_INVENTORY_SLOT_COUNT = bj_MAX_EQUIPMENT_INVENTORY
45
+ ---
46
+ -- @internal For use by internal systems only.
47
+ ____exports.RING_FILLER_ITEM_TYPE_ID = compiletime(function()
48
+ local itemType = BlankItemType:create()
49
+ itemType.name = "[Warscript/Dummy] Ring Filler"
50
+ itemType.itemClass = "Equipment"
51
+ itemType.equipmentType = 5
52
+ return itemType.id
53
+ end)
54
+ ignoreEventsItemTypeIds[____exports.RING_FILLER_ITEM_TYPE_ID] = true
55
+ --- Occupies the RING slot while a ring is being equipped into ALTERNATE_RING, since the engine fills the
56
+ -- RING slot first.
57
+ local ringFillerItem = (function()
58
+ local item = CreateItem(____exports.RING_FILLER_ITEM_TYPE_ID, 0, 0)
59
+ setItemVisible(item, false)
60
+ return item
61
+ end)()
62
+ --- Equips an item the unit may not be carrying yet; the engine picks the slot.
63
+ local function unitEquip(unit, item)
64
+ return unitEquipItem(unit, item) or unitAddItem(unit, item) and unitEquipItem(unit, item)
65
+ end
66
+ local handleByUnitEquipmentInventory = setmetatable({}, {__mode = "k"})
67
+ local function unitEquipmentInventoryNext(handle, slot)
68
+ if slot >= EQUIPMENT_INVENTORY_SLOT_COUNT then
69
+ return nil, nil
70
+ end
71
+ return slot + 1, Item:of(unitItemInEquipmentSlot(
72
+ handle,
73
+ convertLoadoutSlot(slot)
74
+ ))
75
+ end
76
+ --- A live view of a unit's equipment inventory, indexed by {@link EquipmentSlot}.
77
+ --
78
+ -- Equipment slots are typed, so the engine picks the slot itself when equipping: slot assignment frees
79
+ -- the requested slot and then equips the item. The only type with two slots is the ring; equipping into
80
+ -- ALTERNATE_RING temporarily occupies RING with a filler ring, mirroring the regular inventory's approach.
81
+ ____exports.UnitEquipmentInventory = __TS__Class()
82
+ local UnitEquipmentInventory = ____exports.UnitEquipmentInventory
83
+ UnitEquipmentInventory.name = "UnitEquipmentInventory"
84
+ function UnitEquipmentInventory.prototype.____constructor(self, handle)
85
+ handleByUnitEquipmentInventory[self] = handle
86
+ end
87
+ function UnitEquipmentInventory.prototype.equip(self, item)
88
+ return unitEquipItem(handleByUnitEquipmentInventory[self], item.handle)
89
+ end
90
+ function UnitEquipmentInventory.prototype.unequip(self, item)
91
+ unitUnequipItem(handleByUnitEquipmentInventory[self], item.handle)
92
+ end
93
+ function UnitEquipmentInventory.prototype.unequipSlot(self, slot)
94
+ return Item:of(unitUnequipItemFromSlot(
95
+ handleByUnitEquipmentInventory[self],
96
+ convertLoadoutSlot(slot)
97
+ ))
98
+ end
99
+ function UnitEquipmentInventory.prototype.has(self, item)
100
+ return unitHasItemEquipped(handleByUnitEquipmentInventory[self], item.handle)
101
+ end
102
+ function UnitEquipmentInventory.prototype.hasAny(self)
103
+ return unitHasAnyItemEquiped(handleByUnitEquipmentInventory[self])
104
+ end
105
+ function UnitEquipmentInventory.prototype.isSlotEmpty(self, slot)
106
+ return unitHasLoadoutSlotEmpty(
107
+ handleByUnitEquipmentInventory[self],
108
+ convertLoadoutSlot(slot)
109
+ )
110
+ end
111
+ function UnitEquipmentInventory.prototype.hasType(self, ____type)
112
+ return unitHasItemEquipmentOfType(
113
+ handleByUnitEquipmentInventory[self],
114
+ convertEquipmentType(____type)
115
+ )
116
+ end
117
+ function UnitEquipmentInventory.prototype.canEquipType(self, ____type)
118
+ return unitCanEquipItemOfEquipmentType(
119
+ handleByUnitEquipmentInventory[self],
120
+ convertEquipmentType(____type)
121
+ )
122
+ end
123
+ function UnitEquipmentInventory.prototype.findSlot(self, item)
124
+ local handle = handleByUnitEquipmentInventory[self]
125
+ for slot = 0, EQUIPMENT_INVENTORY_SLOT_COUNT - 1 do
126
+ if unitItemInEquipmentSlot(
127
+ handle,
128
+ convertLoadoutSlot(slot)
129
+ ) == item.handle then
130
+ return slot
131
+ end
132
+ end
133
+ return nil
134
+ end
135
+ function UnitEquipmentInventory.prototype.__newindex(self, slot, item)
136
+ local handle = handleByUnitEquipmentInventory[self]
137
+ if slot < 1 or slot > EQUIPMENT_INVENTORY_SLOT_COUNT then
138
+ return
139
+ end
140
+ local loadoutSlot = convertLoadoutSlot(slot - 1)
141
+ local previousItem = unitItemInEquipmentSlot(handle, loadoutSlot)
142
+ if previousItem ~= nil and previousItem ~= (item and item.handle) then
143
+ unitUnequipItemFromSlot(handle, loadoutSlot)
144
+ unitRemoveItem(handle, previousItem)
145
+ end
146
+ if item ~= nil then
147
+ local itemHandle = item.handle
148
+ local ringLoadoutSlot = convertLoadoutSlot(4)
149
+ if slot - 1 == 5 and unitHasLoadoutSlotEmpty(handle, ringLoadoutSlot) then
150
+ unitEquip(handle, ringFillerItem)
151
+ unitEquip(handle, itemHandle)
152
+ unitUnequipItemFromSlot(handle, ringLoadoutSlot)
153
+ unitRemoveItem(handle, ringFillerItem)
154
+ setItemVisible(ringFillerItem, false)
155
+ else
156
+ unitEquip(handle, itemHandle)
157
+ end
158
+ end
159
+ end
160
+ function UnitEquipmentInventory.prototype.__index(self, key)
161
+ if ____type(key) == "number" then
162
+ return Item:of(unitItemInEquipmentSlot(
163
+ handleByUnitEquipmentInventory[self],
164
+ convertLoadoutSlot(key - 1)
165
+ ))
166
+ end
167
+ return ____rawget(____exports.UnitEquipmentInventory.prototype, key)
168
+ end
169
+ function UnitEquipmentInventory.prototype.__len(self)
170
+ return EQUIPMENT_INVENTORY_SLOT_COUNT
171
+ end
172
+ function UnitEquipmentInventory.prototype.__ipairs(self)
173
+ return unitEquipmentInventoryNext, handleByUnitEquipmentInventory[self], 0
174
+ end
175
+ __TS__ObjectDefineProperty(
176
+ Unit.prototype,
177
+ "equipmentInventory",
178
+ {get = function(self)
179
+ local equipmentInventory = __TS__New(____exports.UnitEquipmentInventory, self.handle)
180
+ rawset(self, "equipmentInventory", equipmentInventory)
181
+ return equipmentInventory
182
+ end}
183
+ )
184
+ rawset(
185
+ Unit,
186
+ "itemEquippedEvent",
187
+ __TS__New(
188
+ UnitTriggerEvent,
189
+ EVENT_PLAYER_UNIT_EQUIP_ITEM,
190
+ function()
191
+ local unit = getTriggerUnit()
192
+ local item = getEquippedItem()
193
+ if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
194
+ return Unit:of(unit), Item:of(item)
195
+ end
196
+ return IgnoreEvent
197
+ end
198
+ )
199
+ )
200
+ rawset(
201
+ Unit,
202
+ "itemUnequippedEvent",
203
+ __TS__New(
204
+ UnitTriggerEvent,
205
+ EVENT_PLAYER_UNIT_UNEQUIP_ITEM,
206
+ function()
207
+ local unit = getTriggerUnit()
208
+ local item = getUnequippedItem()
209
+ if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
210
+ return Unit:of(unit), Item:of(item)
211
+ end
212
+ return IgnoreEvent
213
+ end
214
+ )
215
+ )
216
+ rawset(
217
+ Unit,
218
+ "itemStackedEvent",
219
+ __TS__New(
220
+ UnitTriggerEvent,
221
+ EVENT_PLAYER_UNIT_STACK_ITEM,
222
+ function()
223
+ local unit = getTriggerUnit()
224
+ local target = getStackingItemTarget()
225
+ local source = getStackingItemSource()
226
+ if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(target) and not isItemIgnoredInEvents(source) then
227
+ return Unit:of(unit), Item:of(target), Item:of(source), getStackingItemTargetPreviousCharges()
228
+ end
229
+ return IgnoreEvent
230
+ end
231
+ )
232
+ )
233
+ return ____exports
@@ -29,7 +29,7 @@ Unit.prototype.removeExpirationTimer = function(self)
29
29
  cancelTimedLife(handle)
30
30
  setWidgetLife(handle, life)
31
31
  end
32
- Unit.onImmediateOrder[orderId("phoenixmorph")]:addListener(
32
+ Unit.onImmediateOrder[852482]:addListener(
33
33
  4,
34
34
  function(unit)
35
35
  unitRemoveAbility(unit.handle, dummyPhoenixMorphAbilityTypeId)
@@ -0,0 +1,25 @@
1
+ /** @noSelfInFile */
2
+ import { Item } from "../item";
3
+ import type { UnitItemContainer } from "./item-container";
4
+ export interface UnitExtendedInventory extends UnitItemContainer {
5
+ }
6
+ /**
7
+ * A live, zero-based view of a unit's extended inventory.
8
+ *
9
+ * Slot assignment works like the regular inventory's, see {@link unitAddItemToSlot}.
10
+ */
11
+ export declare class UnitExtendedInventory {
12
+ constructor(handle: junit);
13
+ has(item: Item): boolean;
14
+ findSlot(item: Item): number | undefined;
15
+ isSlotEmpty(slot: number): boolean;
16
+ protected __newindex(slot: number, item: Item | undefined): void;
17
+ protected __index(key: string | number): unknown;
18
+ protected __len(): number;
19
+ protected __ipairs(): LuaIterator<LuaMultiReturn<[number, Item | undefined]>, junit>;
20
+ }
21
+ declare module "../unit" {
22
+ interface Unit {
23
+ readonly extendedInventory: UnitExtendedInventory;
24
+ }
25
+ }
@@ -0,0 +1,99 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__New = ____lualib.__TS__New
4
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
5
+ local ____exports = {}
6
+ local ____item = require("engine.internal.item")
7
+ local Item = ____item.Item
8
+ local ____unit = require("engine.internal.unit")
9
+ local Unit = ____unit.Unit
10
+ local ____item_2Dcontainer = require("engine.internal.unit.item-container")
11
+ local unitOwnsItem = ____item_2Dcontainer.unitOwnsItem
12
+ local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
13
+ local unitAddItemToSlot = ____add_2Ditem_2Dto_2Dslot.unitAddItemToSlot
14
+ local unitExtendedInventorySize = UnitExtendedInventorySize
15
+ local unitHasItemBagged = UnitHasItemBagged
16
+ local unitItemInBagSlot = UnitItemInBagSlot
17
+ local unitRemoveItem = UnitRemoveItem
18
+ local isItemPowerup = IsItemPowerup
19
+ local setItemBooleanField = BlzSetItemBooleanField
20
+ local ____rawget = _G.rawget
21
+ local rawset = _G.rawset
22
+ local ____type = _G.type
23
+ local handleByUnitExtendedInventory = setmetatable({}, {__mode = "k"})
24
+ local function unitExtendedInventoryNext(handle, slot)
25
+ if slot >= unitExtendedInventorySize(handle) then
26
+ return nil, nil
27
+ end
28
+ return slot + 1, Item:of(unitItemInBagSlot(handle, slot))
29
+ end
30
+ --- A live, zero-based view of a unit's extended inventory.
31
+ --
32
+ -- Slot assignment works like the regular inventory's, see {@link unitAddItemToSlot}.
33
+ ____exports.UnitExtendedInventory = __TS__Class()
34
+ local UnitExtendedInventory = ____exports.UnitExtendedInventory
35
+ UnitExtendedInventory.name = "UnitExtendedInventory"
36
+ function UnitExtendedInventory.prototype.____constructor(self, handle)
37
+ handleByUnitExtendedInventory[self] = handle
38
+ end
39
+ function UnitExtendedInventory.prototype.has(self, item)
40
+ return unitHasItemBagged(handleByUnitExtendedInventory[self], item.handle)
41
+ end
42
+ function UnitExtendedInventory.prototype.findSlot(self, item)
43
+ local handle = handleByUnitExtendedInventory[self]
44
+ for slot = 0, unitExtendedInventorySize(handle) - 1 do
45
+ if unitItemInBagSlot(handle, slot) == item.handle then
46
+ return slot
47
+ end
48
+ end
49
+ return nil
50
+ end
51
+ function UnitExtendedInventory.prototype.isSlotEmpty(self, slot)
52
+ return unitItemInBagSlot(handleByUnitExtendedInventory[self], slot) == nil
53
+ end
54
+ function UnitExtendedInventory.prototype.__newindex(self, slot, item)
55
+ local handle = handleByUnitExtendedInventory[self]
56
+ if slot < 1 or slot > unitExtendedInventorySize(handle) then
57
+ return
58
+ end
59
+ local previousItem = unitItemInBagSlot(handle, slot - 1)
60
+ if previousItem ~= nil and previousItem ~= (item and item.handle) then
61
+ unitRemoveItem(handle, previousItem)
62
+ end
63
+ if item ~= nil then
64
+ local itemHandle = item.handle
65
+ if unitOwnsItem(handle, itemHandle) then
66
+ unitRemoveItem(handle, itemHandle)
67
+ end
68
+ local isPowerup = isItemPowerup(itemHandle)
69
+ if isPowerup then
70
+ setItemBooleanField(itemHandle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, false)
71
+ end
72
+ unitAddItemToSlot(handle, itemHandle, slot - 1, 1)
73
+ if isPowerup then
74
+ setItemBooleanField(itemHandle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, true)
75
+ end
76
+ end
77
+ end
78
+ function UnitExtendedInventory.prototype.__index(self, key)
79
+ if ____type(key) == "number" then
80
+ return Item:of(unitItemInBagSlot(handleByUnitExtendedInventory[self], key - 1))
81
+ end
82
+ return ____rawget(____exports.UnitExtendedInventory.prototype, key)
83
+ end
84
+ function UnitExtendedInventory.prototype.__len(self)
85
+ return unitExtendedInventorySize(handleByUnitExtendedInventory[self])
86
+ end
87
+ function UnitExtendedInventory.prototype.__ipairs(self)
88
+ return unitExtendedInventoryNext, handleByUnitExtendedInventory[self], 0
89
+ end
90
+ __TS__ObjectDefineProperty(
91
+ Unit.prototype,
92
+ "extendedInventory",
93
+ {get = function(self)
94
+ local extendedInventory = __TS__New(____exports.UnitExtendedInventory, self.handle)
95
+ rawset(self, "extendedInventory", extendedInventory)
96
+ return extendedInventory
97
+ end}
98
+ )
99
+ return ____exports
@@ -0,0 +1,7 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ flyHeight: number;
5
+ }
6
+ }
7
+ export {};
@@ -0,0 +1,20 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
+ local ____exports = {}
4
+ local ____unit = require("engine.internal.unit")
5
+ local Unit = ____unit.Unit
6
+ local ____unit = require("engine.standard.fields.unit")
7
+ local FLY_HEIGHT_UNIT_FIELD = ____unit.FLY_HEIGHT_UNIT_FIELD
8
+ __TS__ObjectDefineProperty(
9
+ Unit.prototype,
10
+ "flyHeight",
11
+ {
12
+ get = function(self)
13
+ return FLY_HEIGHT_UNIT_FIELD:getValue(self)
14
+ end,
15
+ set = function(self, value)
16
+ FLY_HEIGHT_UNIT_FIELD:setValue(self, value)
17
+ end
18
+ }
19
+ )
20
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,14 @@
1
+ local ____exports = {}
2
+ local getItemTypeId = GetItemTypeId
3
+ --- Items that are temporarily excluded from item events (e.g. while an internal system juggles them).
4
+ --
5
+ -- @internal For use by internal systems only.
6
+ ____exports.ignoreEventsItems = {}
7
+ --- Item types that are always excluded from item events (technical items such as slot fillers).
8
+ --
9
+ -- @internal For use by internal systems only.
10
+ ____exports.ignoreEventsItemTypeIds = {}
11
+ ---
12
+ -- @internal For use by internal systems only.
13
+ ____exports.isItemIgnoredInEvents = function(item) return item ~= nil and (____exports.ignoreEventsItems[item] ~= nil or ____exports.ignoreEventsItemTypeIds[getItemTypeId(item)] ~= nil) end
14
+ return ____exports
@@ -0,0 +1,12 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ interruptAttack(this: Unit): void;
5
+ }
6
+ }
7
+ declare module "../unit" {
8
+ interface Unit {
9
+ interruptMovement(this: Unit): void;
10
+ }
11
+ }
12
+ export {};
@@ -0,0 +1,28 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.internal.unit")
3
+ local Unit = ____unit.Unit
4
+ local ____unit_2Dmissile_2Dlaunch = require("engine.internal.unit-missile-launch")
5
+ local resetAutoAttackTimer = ____unit_2Dmissile_2Dlaunch.resetAutoAttackTimer
6
+ local unitDisableAbility = BlzUnitDisableAbility
7
+ local unitInterruptAttack = BlzUnitInterruptAttack
8
+ Unit.prototype.interruptAttack = function(self)
9
+ unitInterruptAttack(self.handle)
10
+ resetAutoAttackTimer(self)
11
+ end
12
+ Unit.prototype.interruptMovement = function(self)
13
+ local handle = self.handle
14
+ unitDisableAbility(
15
+ handle,
16
+ fourCC("Amov"),
17
+ true,
18
+ false
19
+ )
20
+ unitDisableAbility(
21
+ handle,
22
+ fourCC("Amov"),
23
+ false,
24
+ false
25
+ )
26
+ resetAutoAttackTimer(self)
27
+ end
28
+ return ____exports
@@ -0,0 +1,28 @@
1
+ /** @noSelfInFile */
2
+ import { Item } from "../item";
3
+ import type { UnitItemContainer } from "./item-container";
4
+ export interface UnitInventory extends UnitItemContainer {
5
+ readonly length: 0 | 1 | 2 | 3 | 4 | 5 | 6;
6
+ [0]: Item | undefined;
7
+ [1]: Item | undefined;
8
+ [2]: Item | undefined;
9
+ [3]: Item | undefined;
10
+ [4]: Item | undefined;
11
+ [5]: Item | undefined;
12
+ }
13
+ /** A live, zero-based view of a unit's (regular) inventory. */
14
+ export declare class UnitInventory {
15
+ constructor(handle: junit);
16
+ has(item: Item): boolean;
17
+ findSlot(item: Item): 0 | 1 | 2 | 3 | 4 | 5 | undefined;
18
+ isSlotEmpty(slot: 0 | 1 | 2 | 3 | 4 | 5): boolean;
19
+ protected __newindex(slot: number, item: Item | undefined): void;
20
+ protected __index(key: string | number): unknown;
21
+ protected __len(): number;
22
+ protected __ipairs(): LuaIterator<LuaMultiReturn<[number, Item | undefined]>, junit>;
23
+ }
24
+ declare module "../unit" {
25
+ interface Unit {
26
+ readonly inventory: UnitInventory;
27
+ }
28
+ }
@@ -0,0 +1,87 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__New = ____lualib.__TS__New
4
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
5
+ local ____exports = {}
6
+ local ____item = require("engine.internal.item")
7
+ local Item = ____item.Item
8
+ local ____unit = require("engine.internal.unit")
9
+ local Unit = ____unit.Unit
10
+ local ____utility = require("engine.internal.utility")
11
+ local findUnitItemSlot = ____utility.findUnitItemSlot
12
+ local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
13
+ local unitAddItemToSlot = ____add_2Ditem_2Dto_2Dslot.unitAddItemToSlot
14
+ local rawset = _G.rawset
15
+ local ____type = _G.type
16
+ local isItemPowerup = IsItemPowerup
17
+ local setItemBooleanField = BlzSetItemBooleanField
18
+ local unitHasItem = UnitHasItem
19
+ local unitInventorySize = UnitInventorySize
20
+ local unitItemInSlot = UnitItemInSlot
21
+ local unitRemoveItem = UnitRemoveItem
22
+ local unitRemoveItemFromSlot = UnitRemoveItemFromSlot
23
+ local handleByUnitInventory = setmetatable({}, {__mode = "k"})
24
+ local function unitInventoryNext(handle, slot)
25
+ if slot >= unitInventorySize(handle) then
26
+ return nil, nil
27
+ end
28
+ return slot + 1, Item:of(unitItemInSlot(handle, slot))
29
+ end
30
+ --- A live, zero-based view of a unit's (regular) inventory.
31
+ ____exports.UnitInventory = __TS__Class()
32
+ local UnitInventory = ____exports.UnitInventory
33
+ UnitInventory.name = "UnitInventory"
34
+ function UnitInventory.prototype.____constructor(self, handle)
35
+ handleByUnitInventory[self] = handle
36
+ end
37
+ function UnitInventory.prototype.has(self, item)
38
+ return unitHasItem(handleByUnitInventory[self], item.handle)
39
+ end
40
+ function UnitInventory.prototype.findSlot(self, item)
41
+ return findUnitItemSlot(handleByUnitInventory[self], item.handle)
42
+ end
43
+ function UnitInventory.prototype.isSlotEmpty(self, slot)
44
+ return unitItemInSlot(handleByUnitInventory[self], slot) == nil
45
+ end
46
+ function UnitInventory.prototype.__newindex(self, slot, item)
47
+ local handle = handleByUnitInventory[self]
48
+ if slot < 1 or slot > unitInventorySize(handle) then
49
+ return
50
+ end
51
+ unitRemoveItemFromSlot(handle, slot - 1)
52
+ if item ~= nil then
53
+ local itemHandle = item.handle
54
+ unitRemoveItem(handle, itemHandle)
55
+ local isPowerup = isItemPowerup(itemHandle)
56
+ if isPowerup then
57
+ setItemBooleanField(itemHandle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, false)
58
+ end
59
+ unitAddItemToSlot(handle, itemHandle, slot - 1)
60
+ if isPowerup then
61
+ setItemBooleanField(itemHandle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, true)
62
+ end
63
+ end
64
+ end
65
+ function UnitInventory.prototype.__index(self, key)
66
+ if ____type(key) == "number" then
67
+ return Item:of(unitItemInSlot(handleByUnitInventory[self], key - 1))
68
+ end
69
+ return rawget(____exports.UnitInventory.prototype, key)
70
+ end
71
+ function UnitInventory.prototype.__len(self)
72
+ return unitInventorySize(handleByUnitInventory[self])
73
+ end
74
+ function UnitInventory.prototype.__ipairs(self)
75
+ local handle = handleByUnitInventory[self]
76
+ return unitInventoryNext, handle, 0
77
+ end
78
+ __TS__ObjectDefineProperty(
79
+ Unit.prototype,
80
+ "inventory",
81
+ {get = function(self)
82
+ local inventory = __TS__New(____exports.UnitInventory, self.handle)
83
+ rawset(self, "inventory", inventory)
84
+ return inventory
85
+ end}
86
+ )
87
+ return ____exports
@@ -0,0 +1,25 @@
1
+ /** @noSelfInFile */
2
+ import type { Item } from "../item";
3
+ /** Which of a unit's item containers a slot belongs to. */
4
+ export declare const enum UnitItemContainerType {
5
+ INVENTORY = 0,
6
+ EXTENDED_INVENTORY = 1,
7
+ EQUIPMENT_INVENTORY = 2
8
+ }
9
+ export declare const UNIT_INVENTORY_SLOT_COUNT = 6;
10
+ export declare const UNIT_EXTENDED_INVENTORY_SLOT_COUNT = 30;
11
+ export declare const UNIT_EQUIPMENT_INVENTORY_SLOT_COUNT: number;
12
+ /**
13
+ * The API shared by all live views of a unit's item containers: {@link UnitInventory},
14
+ * {@link UnitExtendedInventory} and {@link UnitEquipmentInventory}.
15
+ *
16
+ * Slots are zero-based. Reading `container[slot]` returns the item in the slot, if any; assigning
17
+ * `container[slot] = item` drops whatever the slot held and places the item there (picking it up from
18
+ * wherever it is first), and assigning `undefined` just drops the slot's item.
19
+ */
20
+ export interface UnitItemContainer extends ReadonlyArray<Item | undefined> {
21
+ readonly length: number;
22
+ has(item: Item): boolean;
23
+ findSlot(item: Item): number | undefined;
24
+ isSlotEmpty(slot: number): boolean;
25
+ }
@@ -0,0 +1,11 @@
1
+ local ____exports = {}
2
+ local unitHasItem = UnitHasItem
3
+ local unitHasItemBagged = UnitHasItemBagged
4
+ local unitHasItemEquipped = UnitHasItemEquipped
5
+ ____exports.UNIT_INVENTORY_SLOT_COUNT = 6
6
+ ____exports.UNIT_EXTENDED_INVENTORY_SLOT_COUNT = 30
7
+ ____exports.UNIT_EQUIPMENT_INVENTORY_SLOT_COUNT = bj_MAX_EQUIPMENT_INVENTORY
8
+ ---
9
+ -- @internal For use by internal systems only.
10
+ ____exports.unitOwnsItem = function(unitHandle, itemHandle) return unitHasItem(unitHandle, itemHandle) or unitHasItemBagged(unitHandle, itemHandle) or unitHasItemEquipped(unitHandle, itemHandle) end
11
+ return ____exports
@@ -0,0 +1,17 @@
1
+ /** @noSelfInFile */
2
+ import { Item } from "../item";
3
+ import { Event } from "../../../event";
4
+ import { UnitItemSlot } from "./item-slot";
5
+ declare module "../unit" {
6
+ namespace Unit {
7
+ /** A unit was ordered to use the item in a slot of any of its item containers. */
8
+ const itemUseOrderEvent: Event<[unit: Unit, item: Item]>;
9
+ /** A unit was ordered to move an item between slots of its item containers. */
10
+ const itemMoveOrderEvent: Event<[
11
+ unit: Unit,
12
+ item: Item,
13
+ slotFrom: UnitItemSlot,
14
+ slotTo: UnitItemSlot
15
+ ]>;
16
+ }
17
+ }