warscript 0.0.1-dev.2af030d → 0.0.1-dev.2b3f95e

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 (500) hide show
  1. package/attributes.d.ts +6 -1
  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 +29 -3
  11. package/core/types/frame.lua +222 -52
  12. package/core/types/group.d.ts +0 -1
  13. package/core/types/handle.lua +9 -9
  14. package/core/types/image.d.ts +0 -1
  15. package/core/types/item.d.ts +1 -0
  16. package/core/types/item.lua +1 -0
  17. package/core/types/missile.d.ts +2 -2
  18. package/core/types/missile.lua +14 -13
  19. package/core/types/player.d.ts +18 -1
  20. package/core/types/player.lua +76 -26
  21. package/core/types/playerCamera.d.ts +2 -0
  22. package/core/types/playerCamera.lua +123 -5
  23. package/core/types/playerColor.lua +4 -3
  24. package/core/types/sound.d.ts +18 -25
  25. package/core/types/sound.lua +113 -33
  26. package/core/types/tileCell.d.ts +18 -3
  27. package/core/types/tileCell.lua +108 -0
  28. package/core/types/timer.d.ts +9 -8
  29. package/core/types/timer.lua +45 -23
  30. package/core/types/unit.d.ts +5 -0
  31. package/core/types/unit.lua +13 -0
  32. package/core/util.d.ts +3 -1
  33. package/core/util.lua +127 -4
  34. package/decl/index.d.ts +1 -0
  35. package/decl/native.d.ts +1719 -964
  36. package/destroyable.d.ts +1 -0
  37. package/destroyable.lua +9 -0
  38. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  39. package/engine/ability-type-extended-tooltip.lua +44 -0
  40. package/engine/ability.d.ts +1 -1
  41. package/engine/behavior.d.ts +24 -11
  42. package/engine/behavior.lua +233 -73
  43. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  44. package/engine/behaviour/ability/always-enabled.lua +31 -0
  45. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  46. package/engine/behaviour/ability/apply-buff.lua +36 -4
  47. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  48. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  49. package/engine/behaviour/ability/damage.d.ts +44 -11
  50. package/engine/behaviour/ability/damage.lua +89 -39
  51. package/engine/behaviour/ability/emulate-impact.d.ts +20 -0
  52. package/engine/behaviour/ability/emulate-impact.lua +117 -0
  53. package/engine/behaviour/ability/heal.d.ts +33 -6
  54. package/engine/behaviour/ability/heal.lua +89 -10
  55. package/engine/behaviour/ability/instant-impact.d.ts +14 -3
  56. package/engine/behaviour/ability/instant-impact.lua +20 -16
  57. package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
  58. package/engine/behaviour/ability/on-command-impact.lua +26 -0
  59. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  60. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  61. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  62. package/engine/behaviour/ability/restore-mana.lua +29 -0
  63. package/engine/behaviour/ability.d.ts +43 -7
  64. package/engine/behaviour/ability.lua +264 -27
  65. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  66. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  67. package/engine/behaviour/unit.d.ts +49 -4
  68. package/engine/behaviour/unit.lua +293 -2
  69. package/engine/buff.d.ts +189 -59
  70. package/engine/buff.lua +852 -281
  71. package/engine/game-map.d.ts +7 -0
  72. package/engine/game-map.lua +32 -0
  73. package/engine/index.d.ts +2 -1
  74. package/engine/internal/ability.d.ts +30 -14
  75. package/engine/internal/ability.lua +177 -104
  76. package/engine/internal/item/ability.lua +162 -4
  77. package/engine/internal/item/fields.d.ts +12 -0
  78. package/engine/internal/item/fields.lua +33 -0
  79. package/engine/internal/item/owner-cache.d.ts +5 -0
  80. package/engine/internal/item/owner-cache.lua +4 -0
  81. package/engine/internal/item+owner.d.ts +2 -0
  82. package/engine/internal/item+owner.lua +37 -8
  83. package/engine/internal/item.d.ts +34 -18
  84. package/engine/internal/item.lua +308 -102
  85. package/engine/internal/mechanics/ability-duration.lua +1 -1
  86. package/engine/internal/mechanics/cast-ability.lua +6 -3
  87. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  88. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  89. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  90. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  91. package/engine/internal/misc/frame-coordinates.lua +21 -0
  92. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  93. package/engine/internal/misc/get-terrain-z.lua +11 -0
  94. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  95. package/engine/internal/misc/player-local-handle.lua +5 -0
  96. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  97. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  98. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  99. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  100. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  101. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  102. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  103. package/engine/internal/object-data/evasion-probability.lua +16 -0
  104. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  105. package/engine/internal/object-data/health-bonus.lua +16 -0
  106. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  107. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  108. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  109. package/engine/internal/object-data/mana-bonus.lua +16 -0
  110. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  111. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  112. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  113. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  114. package/engine/internal/unit/ability.d.ts +45 -1
  115. package/engine/internal/unit/ability.lua +144 -17
  116. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  117. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  118. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  119. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  120. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  121. package/engine/internal/unit/allowed-targets.lua +9 -1
  122. package/engine/internal/unit/appearance.d.ts +15 -0
  123. package/engine/internal/unit/appearance.lua +85 -0
  124. package/engine/internal/unit/attributes.d.ts +17 -0
  125. package/engine/internal/unit/attributes.lua +46 -0
  126. package/engine/internal/unit/bonus.d.ts +28 -8
  127. package/engine/internal/unit/bonus.lua +136 -9
  128. package/engine/internal/unit/buff.d.ts +2 -2
  129. package/engine/internal/unit/buff.lua +34 -19
  130. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  131. package/engine/internal/unit/equipment-inventory.lua +233 -0
  132. package/engine/internal/unit/expiration-timer.lua +1 -1
  133. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  134. package/engine/internal/unit/extended-inventory.lua +99 -0
  135. package/engine/internal/unit/fly-height.d.ts +7 -0
  136. package/engine/internal/unit/fly-height.lua +20 -0
  137. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  138. package/engine/internal/unit/ignore-events-items.lua +14 -0
  139. package/engine/internal/unit/interrupts.d.ts +12 -0
  140. package/engine/internal/unit/interrupts.lua +28 -0
  141. package/engine/internal/unit/inventory.d.ts +28 -0
  142. package/engine/internal/unit/inventory.lua +87 -0
  143. package/engine/internal/unit/item-container.d.ts +25 -0
  144. package/engine/internal/unit/item-container.lua +11 -0
  145. package/engine/internal/unit/item-order-events.d.ts +17 -0
  146. package/engine/internal/unit/item-order-events.lua +67 -0
  147. package/engine/internal/unit/item-slot.d.ts +27 -0
  148. package/engine/internal/unit/item-slot.lua +92 -0
  149. package/engine/internal/unit/main-selected.d.ts +13 -0
  150. package/engine/internal/unit/main-selected.lua +36 -0
  151. package/engine/internal/unit/order.d.ts +20 -0
  152. package/engine/internal/unit/order.lua +136 -0
  153. package/engine/internal/unit/range-event.d.ts +12 -0
  154. package/engine/internal/unit/range-event.lua +90 -0
  155. package/engine/internal/unit/scale.d.ts +7 -0
  156. package/engine/internal/unit/scale.lua +20 -0
  157. package/engine/internal/unit/shared-vision-counter.d.ts +18 -0
  158. package/engine/internal/unit/shared-vision-counter.lua +31 -0
  159. package/engine/internal/unit+ability.d.ts +2 -1
  160. package/engine/internal/unit+ability.lua +85 -5
  161. package/engine/internal/unit+bonus.lua +3 -3
  162. package/engine/internal/unit+damage.d.ts +12 -38
  163. package/engine/internal/unit+damage.lua +48 -45
  164. package/engine/internal/unit+rally.lua +9 -31
  165. package/engine/internal/unit+spellSteal.lua +1 -2
  166. package/engine/internal/unit+transport.lua +4 -10
  167. package/engine/internal/unit-missile-data.lua +96 -68
  168. package/engine/internal/unit-missile-launch.lua +74 -13
  169. package/engine/internal/unit.d.ts +67 -35
  170. package/engine/internal/unit.lua +508 -308
  171. package/engine/internal/utility.lua +12 -0
  172. package/engine/lightning.d.ts +12 -5
  173. package/engine/lightning.lua +52 -18
  174. package/engine/local-client.d.ts +35 -2
  175. package/engine/local-client.lua +367 -15
  176. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  177. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  178. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  179. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  180. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -3
  181. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  182. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  183. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  184. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  185. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  186. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  187. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  188. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  189. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  190. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  191. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  192. package/engine/object-data/auxiliary/item-class.lua +2 -0
  193. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  194. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  195. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  196. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  197. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  198. package/engine/object-data/auxiliary/order-type.lua +2 -0
  199. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  200. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  201. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  202. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  203. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  204. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  205. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  206. package/engine/object-data/auxiliary/weapon-sound-type.d.ts +20 -14
  207. package/engine/object-data/auxiliary/weapon-sound-type.lua +58 -0
  208. package/engine/object-data/auxiliary/weapon-type.d.ts +25 -0
  209. package/engine/object-data/auxiliary/weapon-type.lua +2 -0
  210. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  211. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  212. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  213. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  214. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  215. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  216. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  217. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  218. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  219. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  220. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  221. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  222. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  223. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  224. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  225. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  226. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  227. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  228. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  229. package/engine/object-data/entry/ability-type/blank-configurable.lua +14 -3
  230. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  231. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  232. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -1
  233. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  234. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  235. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  236. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  237. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  238. package/engine/object-data/entry/ability-type/channel.d.ts +2 -3
  239. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  240. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  241. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  242. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  243. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  244. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  245. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  246. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  247. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  248. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  249. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  250. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  251. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  252. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  253. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  254. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  255. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  256. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  257. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  258. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  259. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  260. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  261. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  262. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  263. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  264. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  265. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  266. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  267. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  268. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  269. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  270. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  271. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  272. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  273. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  274. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  275. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  276. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  277. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  278. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  279. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  280. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  281. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  282. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  283. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  284. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  285. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  286. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  287. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  288. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  289. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  290. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  291. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  292. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  293. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  294. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  295. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  296. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  297. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  298. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  299. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  300. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  301. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  302. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  303. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  304. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  305. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  306. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  307. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  308. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  309. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  310. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  311. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  312. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  313. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  314. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  315. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  316. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  317. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  318. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  319. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  320. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  321. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  322. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  323. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  324. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  325. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  326. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  327. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  328. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  329. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  330. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  331. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  332. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  333. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  334. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  335. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  336. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  337. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  338. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  339. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  340. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  341. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  342. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  343. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  344. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  345. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  346. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  347. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  348. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  349. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  350. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  351. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  352. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  353. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  354. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  355. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  356. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  357. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  358. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  359. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  360. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  361. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  362. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  363. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  364. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  365. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  366. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  367. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  368. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  369. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  370. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  371. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  372. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  373. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  374. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  375. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  376. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  377. package/engine/object-data/entry/ability-type/web.lua +52 -0
  378. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  379. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  380. package/engine/object-data/entry/ability-type.d.ts +50 -22
  381. package/engine/object-data/entry/ability-type.lua +392 -47
  382. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  383. package/engine/object-data/entry/buff-type/applicable.lua +131 -139
  384. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  385. package/engine/object-data/entry/buff-type.d.ts +10 -13
  386. package/engine/object-data/entry/buff-type.lua +39 -29
  387. package/engine/object-data/entry/destructible-type.d.ts +32 -3
  388. package/engine/object-data/entry/destructible-type.lua +181 -0
  389. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  390. package/engine/object-data/entry/item-type.d.ts +32 -4
  391. package/engine/object-data/entry/item-type.lua +177 -2
  392. package/engine/object-data/entry/lightning-type.d.ts +6 -9
  393. package/engine/object-data/entry/lightning-type.lua +1 -1
  394. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  395. package/engine/object-data/entry/sound-preset.lua +140 -0
  396. package/engine/object-data/entry/unit-type.d.ts +81 -7
  397. package/engine/object-data/entry/unit-type.lua +619 -99
  398. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  399. package/engine/object-data/entry/upgrade.d.ts +2 -3
  400. package/engine/object-data/entry/upgrade.lua +4 -4
  401. package/engine/object-data/entry.d.ts +23 -17
  402. package/engine/object-data/entry.lua +68 -32
  403. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  404. package/engine/object-field/ability.d.ts +28 -5
  405. package/engine/object-field/ability.lua +61 -7
  406. package/engine/object-field/item.d.ts +22 -0
  407. package/engine/object-field/item.lua +118 -0
  408. package/engine/object-field/unit.d.ts +72 -3
  409. package/engine/object-field/unit.lua +268 -7
  410. package/engine/object-field.d.ts +26 -8
  411. package/engine/object-field.lua +362 -117
  412. package/engine/random.d.ts +11 -0
  413. package/engine/random.lua +30 -0
  414. package/engine/standard/entries/ability-type.d.ts +3102 -7
  415. package/engine/standard/entries/ability-type.lua +0 -6
  416. package/engine/standard/entries/buff-type.d.ts +48 -0
  417. package/engine/standard/entries/buff-type.lua +46 -0
  418. package/engine/standard/entries/item-type.d.ts +1299 -0
  419. package/engine/standard/entries/item-type.lua +2 -0
  420. package/engine/standard/entries/lightning-type.d.ts +42 -15
  421. package/engine/standard/entries/lightning-type.lua +0 -14
  422. package/engine/standard/entries/sound-preset.d.ts +10 -0
  423. package/engine/standard/entries/sound-preset.lua +10 -0
  424. package/engine/standard/entries/unit-type.d.ts +23 -0
  425. package/engine/standard/entries/unit-type.lua +23 -0
  426. package/engine/standard/fields/ability.d.ts +7 -5
  427. package/engine/standard/fields/ability.lua +7 -5
  428. package/engine/standard/fields/item.d.ts +4 -0
  429. package/engine/standard/fields/item.lua +6 -0
  430. package/engine/standard/fields/unit.d.ts +12 -0
  431. package/engine/standard/fields/unit.lua +20 -0
  432. package/engine/synchronization.d.ts +11 -0
  433. package/engine/synchronization.lua +77 -0
  434. package/engine/text-tag.d.ts +48 -2
  435. package/engine/text-tag.lua +287 -10
  436. package/engine/unit.d.ts +14 -0
  437. package/engine/unit.lua +23 -2
  438. package/event.d.ts +3 -4
  439. package/event.lua +9 -5
  440. package/index.d.ts +1 -0
  441. package/index.lua +1 -0
  442. package/lualib_bundle.lua +147 -43
  443. package/math/vec2.d.ts +2 -9
  444. package/math.d.ts +2 -2
  445. package/math.lua +14 -0
  446. package/net/socket.d.ts +7 -1
  447. package/net/socket.lua +45 -4
  448. package/network.d.ts +1 -0
  449. package/network.lua +28 -3
  450. package/objutil/ability.d.ts +0 -1
  451. package/objutil/buff.d.ts +0 -1
  452. package/objutil/buff.lua +13 -12
  453. package/objutil/object.d.ts +0 -1
  454. package/objutil/object.lua +1 -1
  455. package/objutil/unit.d.ts +0 -1
  456. package/objutil/unit.lua +8 -0
  457. package/operation.d.ts +8 -1
  458. package/operation.lua +38 -18
  459. package/package.json +3 -23
  460. package/patch-lua.d.ts +0 -0
  461. package/patch-lua.lua +25 -0
  462. package/patch-lualib.lua +1 -1
  463. package/patch-natives.lua +3 -0
  464. package/property.d.ts +55 -0
  465. package/property.lua +374 -0
  466. package/string.d.ts +16 -0
  467. package/string.lua +5 -0
  468. package/util/stream.d.ts +0 -1
  469. package/utility/arrays.d.ts +20 -6
  470. package/utility/arrays.lua +62 -3
  471. package/utility/bit-set.d.ts +0 -2
  472. package/utility/callback-array.d.ts +17 -0
  473. package/utility/callback-array.lua +61 -0
  474. package/utility/functions.d.ts +8 -0
  475. package/utility/functions.lua +13 -0
  476. package/utility/lazy.d.ts +2 -0
  477. package/utility/lazy.lua +14 -0
  478. package/utility/linked-map.d.ts +35 -0
  479. package/utility/linked-map.lua +107 -0
  480. package/utility/linked-set.d.ts +16 -4
  481. package/utility/linked-set.lua +54 -3
  482. package/utility/lua-maps.d.ts +16 -4
  483. package/utility/lua-maps.lua +53 -2
  484. package/utility/lua-sets.d.ts +3 -2
  485. package/utility/lua-sets.lua +7 -0
  486. package/utility/random.d.ts +102 -0
  487. package/utility/random.lua +273 -0
  488. package/utility/records.lua +20 -1
  489. package/utility/reflection.lua +11 -7
  490. package/utility/types.d.ts +4 -0
  491. package/utility/unordered-map.d.ts +27 -0
  492. package/utility/unordered-map.lua +99 -0
  493. package/core/mapbounds.d.ts +0 -8
  494. package/core/mapbounds.lua +0 -12
  495. package/core/types/order.d.ts +0 -25
  496. package/core/types/order.lua +0 -55
  497. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  498. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  499. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  500. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -7,8 +7,12 @@ local UnitAbility = ____ability.UnitAbility
7
7
  local ____unit = require("engine.internal.unit")
8
8
  local Unit = ____unit.Unit
9
9
  local ____event = require("event")
10
- local Event = ____event.Event
11
10
  local createDispatchingEvent = ____event.createDispatchingEvent
11
+ local Event = ____event.Event
12
+ local ____unit_2Dability_2Dlevel_2Dnatives = require("engine.internal.misc.unit-ability-level-natives")
13
+ local rawDecUnitAbilityLevel = ____unit_2Dability_2Dlevel_2Dnatives.rawDecUnitAbilityLevel
14
+ local rawIncUnitAbilityLevel = ____unit_2Dability_2Dlevel_2Dnatives.rawIncUnitAbilityLevel
15
+ local rawSetUnitAbilityLevel = ____unit_2Dability_2Dlevel_2Dnatives.rawSetUnitAbilityLevel
12
16
  local abilityGainedEvent = createDispatchingEvent(
13
17
  __TS__New(Event),
14
18
  function(unit, ability) return ability.typeId end
@@ -19,12 +23,79 @@ local abilityLostEvent = createDispatchingEvent(
19
23
  function(unit, ability) return ability.typeId end
20
24
  )
21
25
  rawset(Unit, "abilityLostEvent", abilityLostEvent)
26
+ local abilityLevelChangedEvent = createDispatchingEvent(
27
+ __TS__New(Event),
28
+ function(unit, ability) return ability.typeId end
29
+ )
30
+ rawset(Unit, "abilityLevelChangedEvent", abilityLevelChangedEvent)
31
+ local getUnitAbilityLevel = GetUnitAbilityLevel
32
+ local unitDisableAbility = BlzUnitDisableAbility
33
+ local function invokeAbilityLevelChangedEvent(unitHandle, abilityTypeId)
34
+ local unit = Unit:of(unitHandle)
35
+ if unit ~= nil then
36
+ local ability = unit:getAbility(abilityTypeId)
37
+ if ability ~= nil then
38
+ Event.invoke(abilityLevelChangedEvent, unit, ability)
39
+ end
40
+ end
41
+ end
42
+ local function invokeAbilityLevelChangedEventIfChanged(unitHandle, abilityTypeId, previousLevel)
43
+ if previousLevel ~= 0 then
44
+ local level = getUnitAbilityLevel(unitHandle, abilityTypeId)
45
+ if level ~= 0 and level ~= previousLevel then
46
+ invokeAbilityLevelChangedEvent(unitHandle, abilityTypeId)
47
+ end
48
+ end
49
+ end
50
+ _G.SetUnitAbilityLevel = function(whichUnit, abilcode, level)
51
+ local previousLevel = getUnitAbilityLevel(whichUnit, abilcode)
52
+ local result = rawSetUnitAbilityLevel(whichUnit, abilcode, level)
53
+ invokeAbilityLevelChangedEventIfChanged(whichUnit, abilcode, previousLevel)
54
+ return result
55
+ end
56
+ _G.IncUnitAbilityLevel = function(whichUnit, abilcode)
57
+ local previousLevel = getUnitAbilityLevel(whichUnit, abilcode)
58
+ local result = rawIncUnitAbilityLevel(whichUnit, abilcode)
59
+ invokeAbilityLevelChangedEventIfChanged(whichUnit, abilcode, previousLevel)
60
+ return result
61
+ end
62
+ _G.DecUnitAbilityLevel = function(whichUnit, abilcode)
63
+ local previousLevel = getUnitAbilityLevel(whichUnit, abilcode)
64
+ local result = rawDecUnitAbilityLevel(whichUnit, abilcode)
65
+ invokeAbilityLevelChangedEventIfChanged(whichUnit, abilcode, previousLevel)
66
+ return result
67
+ end
68
+ local heroSkillTrigger = CreateTrigger()
69
+ TriggerRegisterAnyUnitEventBJ(heroSkillTrigger, EVENT_PLAYER_HERO_SKILL)
70
+ TriggerAddCondition(
71
+ heroSkillTrigger,
72
+ Condition(function()
73
+ if GetLearnedSkillLevel() > 1 then
74
+ local unitHandle = GetTriggerUnit()
75
+ if unitHandle ~= nil then
76
+ invokeAbilityLevelChangedEvent(
77
+ unitHandle,
78
+ GetLearnedSkill()
79
+ )
80
+ end
81
+ end
82
+ end)
83
+ )
22
84
  UnitAbility.onCreate:addListener(
23
85
  0,
24
86
  function(ability)
25
87
  Event.invoke(abilityGainedEvent, ability.owner, ability)
26
88
  end
27
89
  )
90
+ UnitAbility.onDestroy:addListener(
91
+ 999999,
92
+ function(ability)
93
+ local owner = ability.owner
94
+ if owner.state ~= 2 then
95
+ unitDisableAbility(owner.handle, ability.typeId, true, false)
96
+ end
97
+ end
98
+ )
28
99
  UnitAbility.destroyEvent:addListener(
29
100
  4,
30
101
  function(ability)
@@ -40,16 +111,25 @@ ItemAbility.onCreate:addListener(
40
111
  end
41
112
  end
42
113
  )
43
- Unit.onItemPickup:addListener(
44
- 0,
114
+ ItemAbility.destroyEvent:addListener(
115
+ 4,
116
+ function(ability)
117
+ local unit = ability.owner.owner
118
+ if unit ~= nil then
119
+ Event.invoke(abilityLostEvent, unit, ability)
120
+ end
121
+ end
122
+ )
123
+ Unit.itemPickedUpEvent:addListener(
124
+ -999999,
45
125
  function(unit, item)
46
126
  for ____, ability in ipairs(item.abilities) do
47
127
  Event.invoke(abilityGainedEvent, unit, ability)
48
128
  end
49
129
  end
50
130
  )
51
- Unit.onItemDrop:addListener(
52
- 4,
131
+ Unit.itemDroppedEvent:addListener(
132
+ 999999,
53
133
  function(unit, item)
54
134
  for ____, ability in ipairs(item.abilities) do
55
135
  Event.invoke(abilityLostEvent, unit, ability)
@@ -3,9 +3,9 @@ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
3
  local ____exports = {}
4
4
  local ____unit = require("engine.internal.unit")
5
5
  local Unit = ____unit.Unit
6
- local ____armor_2Dincrease = require("engine.internal.object-data.armor-increase")
7
- local ARMOR_BONUS_DUMMY_ABILITY_FIELD = ____armor_2Dincrease.ARMOR_BONUS_DUMMY_ABILITY_FIELD
8
- local ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID = ____armor_2Dincrease.ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID
6
+ local ____armor_2Dbonus = require("engine.internal.object-data.armor-bonus")
7
+ local ARMOR_BONUS_DUMMY_ABILITY_FIELD = ____armor_2Dbonus.ARMOR_BONUS_DUMMY_ABILITY_FIELD
8
+ local ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID = ____armor_2Dbonus.ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID
9
9
  local getUnitAbility = BlzGetUnitAbility
10
10
  local setAbilityRealLevelField = BlzSetAbilityRealLevelField
11
11
  local unitAddAbility = UnitAddAbility
@@ -1,15 +1,9 @@
1
1
  /** @noSelfInFile */
2
+ import "./unit/allowed-targets";
2
3
  import { Widget } from "../../core/types/widget";
3
- export type AttackType = jattacktype;
4
- export declare namespace AttackType {
5
- const SPELL: jattacktype;
6
- const NORMAL: jattacktype;
7
- const PIERCE: jattacktype;
8
- const SIEGE: jattacktype;
9
- const MAGIC: jattacktype;
10
- const CHAOS: jattacktype;
11
- const HERO: jattacktype;
12
- }
4
+ import { AttackType } from "../object-data/auxiliary/attack-type";
5
+ import { WeaponSoundType } from "../object-data/auxiliary/weapon-sound-type";
6
+ import { CombatClassifications } from "../object-data/auxiliary/combat-classification";
13
7
  export type DamageType = jdamagetype;
14
8
  export declare namespace DamageType {
15
9
  const UNKNOWN: jdamagetype;
@@ -35,35 +29,15 @@ export declare namespace DamageType {
35
29
  const SHADOW_STRIKE: jdamagetype;
36
30
  const UNIVERSAL: jdamagetype;
37
31
  }
38
- export type WeaponType = jweapontype;
39
- export declare namespace WeaponType {
40
- const UNKNOWN: jweapontype;
41
- const METAL_LIGHT_CHOP: jweapontype;
42
- const METAL_MEDIUM_CHOP: jweapontype;
43
- const METAL_HEAVY_CHOP: jweapontype;
44
- const METAL_LIGHT_SLICE: jweapontype;
45
- const METAL_MEDIUM_SLICE: jweapontype;
46
- const METAL_HEAVY_SLICE: jweapontype;
47
- const METAL_MEDIUM_BASH: jweapontype;
48
- const METAL_HEAVY_BASH: jweapontype;
49
- const METAL_MEDIUM_STAB: jweapontype;
50
- const METAL_HEAVY_STAB: jweapontype;
51
- const WOOD_LIGHT_SLICE: jweapontype;
52
- const WOOD_MEDIUM_SLICE: jweapontype;
53
- const WOOD_HEAVY_SLICE: jweapontype;
54
- const WOOD_LIGHT_BASH: jweapontype;
55
- const WOOD_MEDIUM_BASH: jweapontype;
56
- const WOOD_HEAVY_BASH: jweapontype;
57
- const WOOD_LIGHT_STAB: jweapontype;
58
- const WOOD_MEDIUM_STAB: jweapontype;
59
- const CLAW_LIGHT_SLICE: jweapontype;
60
- const CLAW_MEDIUM_SLICE: jweapontype;
61
- const CLAW_HEAVY_SLICE: jweapontype;
62
- const AXE_MEDIUM_CHOP: jweapontype;
63
- const ROCK_HEAVY_BASH: jweapontype;
64
- }
65
32
  declare module "./unit" {
66
33
  interface Unit {
67
- damageTarget(target: Widget, amount: number, attack?: boolean, ranged?: boolean, attackType?: AttackType, damageType?: DamageType, weaponType?: WeaponType): boolean;
34
+ damageTarget(target: Widget, amount: number, attack?: boolean, ranged?: boolean, attackType?: AttackType, damageType?: DamageType, weaponSoundType?: WeaponSoundType, metadata?: unknown): boolean;
35
+ /**
36
+ * Deals amount to each allowed unit in collision range of (x, y).
37
+ * A positive maximumDamage caps the total requested damage, shared equally
38
+ * between the targets. Zero or omitted means unlimited; damage mitigation
39
+ * and damage-event modifiers are applied afterward by damageTarget.
40
+ */
41
+ damageArea(x: number, y: number, range: number, allowedTargetCombatClassifications: CombatClassifications, amount: number, maximumDamage?: number, attack?: boolean, ranged?: boolean, attackType?: AttackType, damageType?: DamageType, weaponSoundType?: WeaponSoundType, metadata?: unknown): void;
68
42
  }
69
43
  }
@@ -3,25 +3,23 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
3
3
  local ____exports = {}
4
4
  local ____unit = require("engine.internal.unit")
5
5
  local Unit = ____unit.Unit
6
+ require("engine.internal.unit.allowed-targets")
6
7
  local ____player = require("core.types.player")
7
8
  local Player = ____player.Player
8
9
  local ____dummy = require("objutil.dummy")
9
10
  local dummyUnitId = ____dummy.dummyUnitId
11
+ local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
12
+ local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
13
+ local ____weapon_2Dsound_2Dtype = require("engine.object-data.auxiliary.weapon-sound-type")
14
+ local weaponSoundTypeToNative = ____weapon_2Dsound_2Dtype.weaponSoundTypeToNative
15
+ local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
16
+ local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
17
+ local ____math = require("math")
18
+ local min = ____math.min
10
19
  local createUnit = CreateUnit
11
20
  local getOwningPlayer = GetOwningPlayer
12
21
  local showUnit = ShowUnit
13
22
  local unitDamageTarget = UnitDamageTarget
14
- ____exports.AttackType = {}
15
- local AttackType = ____exports.AttackType
16
- do
17
- AttackType.SPELL = ATTACK_TYPE_NORMAL
18
- AttackType.NORMAL = ATTACK_TYPE_MELEE
19
- AttackType.PIERCE = ATTACK_TYPE_PIERCE
20
- AttackType.SIEGE = ATTACK_TYPE_SIEGE
21
- AttackType.MAGIC = ATTACK_TYPE_MAGIC
22
- AttackType.CHAOS = ATTACK_TYPE_CHAOS
23
- AttackType.HERO = ATTACK_TYPE_HERO
24
- end
25
23
  ____exports.DamageType = {}
26
24
  local DamageType = ____exports.DamageType
27
25
  do
@@ -48,34 +46,6 @@ do
48
46
  DamageType.SHADOW_STRIKE = DAMAGE_TYPE_SHADOW_STRIKE
49
47
  DamageType.UNIVERSAL = DAMAGE_TYPE_UNIVERSAL
50
48
  end
51
- ____exports.WeaponType = {}
52
- local WeaponType = ____exports.WeaponType
53
- do
54
- WeaponType.UNKNOWN = WEAPON_TYPE_WHOKNOWS
55
- WeaponType.METAL_LIGHT_CHOP = WEAPON_TYPE_METAL_LIGHT_CHOP
56
- WeaponType.METAL_MEDIUM_CHOP = WEAPON_TYPE_METAL_MEDIUM_CHOP
57
- WeaponType.METAL_HEAVY_CHOP = WEAPON_TYPE_METAL_HEAVY_CHOP
58
- WeaponType.METAL_LIGHT_SLICE = WEAPON_TYPE_METAL_LIGHT_SLICE
59
- WeaponType.METAL_MEDIUM_SLICE = WEAPON_TYPE_METAL_MEDIUM_SLICE
60
- WeaponType.METAL_HEAVY_SLICE = WEAPON_TYPE_METAL_HEAVY_SLICE
61
- WeaponType.METAL_MEDIUM_BASH = WEAPON_TYPE_METAL_MEDIUM_BASH
62
- WeaponType.METAL_HEAVY_BASH = WEAPON_TYPE_METAL_HEAVY_BASH
63
- WeaponType.METAL_MEDIUM_STAB = WEAPON_TYPE_METAL_MEDIUM_STAB
64
- WeaponType.METAL_HEAVY_STAB = WEAPON_TYPE_METAL_HEAVY_STAB
65
- WeaponType.WOOD_LIGHT_SLICE = WEAPON_TYPE_WOOD_LIGHT_SLICE
66
- WeaponType.WOOD_MEDIUM_SLICE = WEAPON_TYPE_WOOD_MEDIUM_SLICE
67
- WeaponType.WOOD_HEAVY_SLICE = WEAPON_TYPE_WOOD_HEAVY_SLICE
68
- WeaponType.WOOD_LIGHT_BASH = WEAPON_TYPE_WOOD_LIGHT_BASH
69
- WeaponType.WOOD_MEDIUM_BASH = WEAPON_TYPE_WOOD_MEDIUM_BASH
70
- WeaponType.WOOD_HEAVY_BASH = WEAPON_TYPE_WOOD_HEAVY_BASH
71
- WeaponType.WOOD_LIGHT_STAB = WEAPON_TYPE_WOOD_LIGHT_STAB
72
- WeaponType.WOOD_MEDIUM_STAB = WEAPON_TYPE_WOOD_MEDIUM_STAB
73
- WeaponType.CLAW_LIGHT_SLICE = WEAPON_TYPE_CLAW_LIGHT_SLICE
74
- WeaponType.CLAW_MEDIUM_SLICE = WEAPON_TYPE_CLAW_MEDIUM_SLICE
75
- WeaponType.CLAW_HEAVY_SLICE = WEAPON_TYPE_CLAW_HEAVY_SLICE
76
- WeaponType.AXE_MEDIUM_CHOP = WEAPON_TYPE_AXE_MEDIUM_CHOP
77
- WeaponType.ROCK_HEAVY_BASH = WEAPON_TYPE_ROCK_HEAVY_BASH
78
- end
79
49
  local dummies = {}
80
50
  for ____, player in ipairs(Player.all) do
81
51
  local dummy = assert(createUnit(
@@ -88,7 +58,7 @@ for ____, player in ipairs(Player.all) do
88
58
  showUnit(dummy, false)
89
59
  dummies[player] = dummy
90
60
  end
91
- Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, attackType, damageType, weaponType)
61
+ Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, attackType, damageType, weaponSoundType, metadata)
92
62
  if attack == nil then
93
63
  attack = false
94
64
  end
@@ -96,28 +66,61 @@ Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, att
96
66
  ranged = false
97
67
  end
98
68
  if attackType == nil then
99
- attackType = ____exports.AttackType.SPELL
69
+ attackType = 0
100
70
  end
101
71
  if damageType == nil then
102
72
  damageType = ____exports.DamageType.MAGIC
103
73
  end
104
- if weaponType == nil then
105
- weaponType = ____exports.WeaponType.UNKNOWN
74
+ if weaponSoundType == nil then
75
+ weaponSoundType = 0
106
76
  end
107
77
  local handle = self.handle
108
78
  local targetHandle = target.handle
109
79
  if not getOwningPlayer(handle) then
110
80
  handle = dummies[__TS__InstanceOf(target, Unit) and target.owner or (self._owner or Player.neutralAggressive)]
111
81
  end
82
+ if __TS__InstanceOf(target, Unit) then
83
+ damageMetadataByTarget[target] = metadata
84
+ end
112
85
  return unitDamageTarget(
113
86
  handle,
114
87
  targetHandle,
115
88
  amount,
116
89
  attack,
117
90
  ranged,
118
- attackType,
91
+ attackTypeToNative(attackType),
119
92
  damageType,
120
- weaponType
93
+ weaponSoundTypeToNative(weaponSoundType)
121
94
  )
122
95
  end
96
+ Unit.prototype.damageArea = function(self, x, y, range, allowedTargetCombatClassifications, amount, maximumDamage, attack, ranged, attackType, damageType, weaponSoundType, metadata)
97
+ if maximumDamage == nil then
98
+ maximumDamage = 0
99
+ end
100
+ local targets = Unit.getAllowedTargetsInCollisionRange(
101
+ self,
102
+ allowedTargetCombatClassifications,
103
+ x,
104
+ y,
105
+ range
106
+ )
107
+ if #targets == 0 then
108
+ return
109
+ end
110
+ if maximumDamage > 0 then
111
+ amount = min(amount, maximumDamage / #targets)
112
+ end
113
+ for ____, target in ipairs(targets) do
114
+ self:damageTarget(
115
+ target,
116
+ amount,
117
+ attack,
118
+ ranged,
119
+ attackType,
120
+ damageType,
121
+ weaponSoundType,
122
+ metadata
123
+ )
124
+ end
125
+ end
123
126
  return ____exports
@@ -23,22 +23,22 @@ local issueTargetOrderById = IssueTargetOrderById
23
23
  local queuePointOrderById = BlzQueuePointOrderById
24
24
  local queueTargetOrderById = BlzQueueTargetOrderById
25
25
  local rallyRouteByUnit = setmetatable({}, {__mode = "k"})
26
- Unit.onPointOrder[orderId("setrally")]:addListener(function(unit, x, y)
26
+ Unit.onPointOrder[851980]:addListener(function(unit, x, y)
27
27
  processPoint(unit, x, y)
28
28
  end)
29
- Unit.onPointOrder[orderId("smart")]:addListener(function(unit, x, y)
29
+ Unit.onPointOrder[851971]:addListener(function(unit, x, y)
30
30
  if unit:hasAbility(fourCC("ARal")) then
31
31
  processPoint(unit, x, y)
32
32
  end
33
33
  end)
34
- Unit.onTargetOrder[orderId("setrally")]:addListener(function(unit, target)
34
+ Unit.onTargetOrder[851980]:addListener(function(unit, target)
35
35
  if __TS__InstanceOf(target, Unit) then
36
36
  processUnit(unit, target)
37
37
  elseif __TS__InstanceOf(target, Destructable) then
38
38
  processDestructible(unit, target)
39
39
  end
40
40
  end)
41
- Unit.onTargetOrder[orderId("smart")]:addListener(function(unit, target)
41
+ Unit.onTargetOrder[851971]:addListener(function(unit, target)
42
42
  if unit:hasAbility(fourCC("ARal")) then
43
43
  if __TS__InstanceOf(target, Unit) then
44
44
  processUnit(unit, target)
@@ -116,41 +116,19 @@ __TS__ObjectDefineProperty(
116
116
  do
117
117
  local rallyPoint = rallyRoute[1]
118
118
  if __TS__InstanceOf(rallyPoint, Handle) then
119
- issueTargetOrderById(
120
- handle,
121
- orderId("setrally"),
122
- rallyPoint.handle
123
- )
119
+ issueTargetOrderById(handle, 851980, rallyPoint.handle)
124
120
  elseif rallyPoint ~= nil then
125
- issuePointOrderById(
126
- handle,
127
- orderId("setrally"),
128
- rallyPoint[1],
129
- rallyPoint[2]
130
- )
121
+ issuePointOrderById(handle, 851980, rallyPoint[1], rallyPoint[2])
131
122
  else
132
- issueTargetOrderById(
133
- handle,
134
- orderId("setrally"),
135
- handle
136
- )
123
+ issueTargetOrderById(handle, 851980, handle)
137
124
  end
138
125
  end
139
126
  for i = 2, #rallyRoute do
140
127
  local rallyPoint = rallyRoute[i]
141
128
  if __TS__InstanceOf(rallyPoint, Handle) then
142
- queueTargetOrderById(
143
- handle,
144
- orderId("setrally"),
145
- rallyPoint.handle
146
- )
129
+ queueTargetOrderById(handle, 851980, rallyPoint.handle)
147
130
  else
148
- queuePointOrderById(
149
- handle,
150
- orderId("setrally"),
151
- rallyPoint[1],
152
- rallyPoint[2]
153
- )
131
+ queuePointOrderById(handle, 851980, rallyPoint[1], rallyPoint[2])
154
132
  end
155
133
  end
156
134
  end
@@ -6,7 +6,6 @@ local ____exports = {}
6
6
  local ____unit = require("engine.internal.unit")
7
7
  local Unit = ____unit.Unit
8
8
  local ____unit_2Bdamage = require("engine.internal.unit+damage")
9
- local AttackType = ____unit_2Bdamage.AttackType
10
9
  local DamageType = ____unit_2Bdamage.DamageType
11
10
  local ____event = require("event")
12
11
  local Event = ____event.Event
@@ -33,7 +32,7 @@ local spellStealEventStack = {}
33
32
  Unit.onDamaging:addListener(function(source, target, event)
34
33
  if event.amount == 0 and source ~= nil then
35
34
  local count = countByUnit[source] or 0
36
- if count > 0 and event.attackType == AttackType.SPELL then
35
+ if count > 0 and event.attackType == 0 then
37
36
  if event.damageType == DamageType.UNKNOWN then
38
37
  spellStealEventStack[#spellStealEventStack + 1] = {
39
38
  sourceBuffIds = source.buffIds,
@@ -6,9 +6,8 @@ local ____unit = require("engine.internal.unit")
6
6
  local Unit = ____unit.Unit
7
7
  local ____event = require("event")
8
8
  local Event = ____event.Event
9
- local ____mapbounds = require("core.mapbounds")
10
- local boundMax = ____mapbounds.boundMax
11
- local boundRegion = ____mapbounds.boundRegion
9
+ local ____game_2Dmap = require("engine.game-map")
10
+ local GameMap = ____game_2Dmap.GameMap
12
11
  local eventInvoke = Event.invoke
13
12
  local tableRemove = table.remove
14
13
  local ____assert = _G.assert
@@ -58,8 +57,8 @@ triggerAddCondition(
58
57
  deboard(unit)
59
58
  end
60
59
  if not unitAlive(handle) then
61
- unit.x = boundMax.x
62
- unit.y = boundMax.y
60
+ unit.x = GameMap.worldBoundsRect.maxX
61
+ unit.y = GameMap.worldBoundsRect.maxY
63
62
  end
64
63
  local transport = Unit:of(getTransportUnit())
65
64
  transportByUnit[unit] = transport
@@ -68,11 +67,6 @@ triggerAddCondition(
68
67
  eventInvoke(onBoardEvent, unit, transport)
69
68
  end)
70
69
  )
71
- boundRegion.onUnitEnter:addListener(function(unit)
72
- if transportByUnit[unit] ~= nil and not isUnitLoaded(unit.handle) then
73
- deboard(unit)
74
- end
75
- end)
76
70
  Unit.deathEvent:addListener(function(unit)
77
71
  if transportByUnit[unit] ~= nil then
78
72
  deboard(unit)
@@ -34,74 +34,102 @@ local DEFAULT_VALUES = {
34
34
  launchVisualOffsetY = ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_Y
35
35
  }
36
36
  local METATABLE = {__index = DEFAULT_VALUES}
37
+ local rawDataByUnitTypeId = postcompile(function()
38
+ return associate(
39
+ UnitType:getAll(),
40
+ function(unitType) return unitType.id end,
41
+ function(unitType)
42
+ return {
43
+ [0] = unitType.missileImpactOffsetZSD ~= ____exports.DEFAULT_MISSILE_IMPACT_OFFSET_Z and unitType.missileImpactOffsetZSD or nil,
44
+ [1] = unitType.missileImpactOffsetZHD ~= unitType.missileImpactOffsetZSD and unitType.missileImpactOffsetZHD or nil,
45
+ [2] = unitType.missileImpactOffsetZDE ~= unitType.missileImpactOffsetZSD and unitType.missileImpactOffsetZDE or nil,
46
+ [3] = unitType.missileLaunchOffsetX ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_X and unitType.missileLaunchOffsetX or nil,
47
+ [4] = unitType.missileLaunchOffsetY ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Y and unitType.missileLaunchOffsetY or nil,
48
+ [5] = unitType.missileLaunchOffsetZSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Z and unitType.missileLaunchOffsetZSD or nil,
49
+ [6] = unitType.missileLaunchOffsetZHD ~= unitType.missileLaunchOffsetZSD and unitType.missileLaunchOffsetZHD or nil,
50
+ [7] = unitType.missileLaunchOffsetZDE ~= unitType.missileLaunchOffsetZSD and unitType.missileLaunchOffsetZDE or nil,
51
+ [8] = unitType.missileLaunchVisualOffsetXSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_X and unitType.missileLaunchVisualOffsetXSD or nil,
52
+ [9] = unitType.missileLaunchVisualOffsetXHD ~= unitType.missileLaunchVisualOffsetXSD and unitType.missileLaunchVisualOffsetXHD or nil,
53
+ [10] = unitType.missileLaunchVisualOffsetXDE ~= unitType.missileLaunchVisualOffsetXSD and unitType.missileLaunchVisualOffsetXDE or nil,
54
+ [11] = unitType.missileLaunchVisualOffsetYSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_Y and unitType.missileLaunchVisualOffsetYSD or nil,
55
+ [12] = unitType.missileLaunchVisualOffsetYHD ~= unitType.missileLaunchVisualOffsetYSD and unitType.missileLaunchVisualOffsetYHD or nil,
56
+ [13] = unitType.missileLaunchVisualOffsetYDE ~= unitType.missileLaunchVisualOffsetYSD and unitType.missileLaunchVisualOffsetYDE or nil
57
+ }
58
+ end
59
+ )
60
+ end)
61
+ local function resolveData(data)
62
+ local ____setmetatable_10 = setmetatable
63
+ local ____LocalClient_isHD_1
64
+ if LocalClient.isHD then
65
+ ____LocalClient_isHD_1 = data[1] or data[0]
66
+ else
67
+ local ____LocalClient_isDE_0
68
+ if LocalClient.isDE then
69
+ ____LocalClient_isDE_0 = data[2] or data[0]
70
+ else
71
+ ____LocalClient_isDE_0 = data[0]
72
+ end
73
+ ____LocalClient_isHD_1 = ____LocalClient_isDE_0
74
+ end
75
+ local ____data__3_8 = data[3]
76
+ local ____data__4_9 = data[4]
77
+ local ____LocalClient_isHD_3
78
+ if LocalClient.isHD then
79
+ ____LocalClient_isHD_3 = data[6] or data[5]
80
+ else
81
+ local ____LocalClient_isDE_2
82
+ if LocalClient.isDE then
83
+ ____LocalClient_isDE_2 = data[7] or data[5]
84
+ else
85
+ ____LocalClient_isDE_2 = data[5]
86
+ end
87
+ ____LocalClient_isHD_3 = ____LocalClient_isDE_2
88
+ end
89
+ local ____LocalClient_isHD_5
90
+ if LocalClient.isHD then
91
+ ____LocalClient_isHD_5 = data[9] or data[8]
92
+ else
93
+ local ____LocalClient_isDE_4
94
+ if LocalClient.isDE then
95
+ ____LocalClient_isDE_4 = data[10] or data[8]
96
+ else
97
+ ____LocalClient_isDE_4 = data[8]
98
+ end
99
+ ____LocalClient_isHD_5 = ____LocalClient_isDE_4
100
+ end
101
+ local ____LocalClient_isHD_7
102
+ if LocalClient.isHD then
103
+ ____LocalClient_isHD_7 = data[12] or data[11]
104
+ else
105
+ local ____LocalClient_isDE_6
106
+ if LocalClient.isDE then
107
+ ____LocalClient_isDE_6 = data[13] or data[11]
108
+ else
109
+ ____LocalClient_isDE_6 = data[11]
110
+ end
111
+ ____LocalClient_isHD_7 = ____LocalClient_isDE_6
112
+ end
113
+ return ____setmetatable_10({
114
+ impactOffsetZ = ____LocalClient_isHD_1,
115
+ launchOffsetX = ____data__3_8,
116
+ launchOffsetY = ____data__4_9,
117
+ launchOffsetZ = ____LocalClient_isHD_3,
118
+ launchVisualOffsetX = ____LocalClient_isHD_5,
119
+ launchVisualOffsetY = ____LocalClient_isHD_7
120
+ }, METATABLE)
121
+ end
37
122
  ---
38
123
  -- @internal For use by internal systems only.
39
- ____exports.MISSILE_DATA_BY_UNIT_TYPE_ID = (function()
40
- return setmetatable(
41
- mapValues(
42
- postcompile(function()
43
- return associate(
44
- UnitType:getAll(),
45
- function(unitType) return unitType.id end,
46
- function(unitType)
47
- local ____ = unitType.missileImpactOffsetZSD
48
- local ____ = unitType.missileImpactOffsetZHD
49
- return {
50
- [0] = unitType.missileImpactOffsetZSD ~= ____exports.DEFAULT_MISSILE_IMPACT_OFFSET_Z and unitType.missileImpactOffsetZSD or nil,
51
- [1] = unitType.missileImpactOffsetZHD ~= unitType.missileImpactOffsetZSD and unitType.missileImpactOffsetZHD or nil,
52
- [2] = unitType.missileLaunchOffsetX ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_X and unitType.missileLaunchOffsetX or nil,
53
- [3] = unitType.missileLaunchOffsetY ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Y and unitType.missileLaunchOffsetY or nil,
54
- [4] = unitType.missileLaunchOffsetZSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Z and unitType.missileLaunchOffsetZSD or nil,
55
- [5] = unitType.missileLaunchOffsetZHD ~= unitType.missileLaunchOffsetZSD and unitType.missileLaunchOffsetZHD or nil,
56
- [6] = unitType.missileLaunchVisualOffsetXSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_X and unitType.missileLaunchVisualOffsetXSD or nil,
57
- [7] = unitType.missileLaunchVisualOffsetXHD ~= unitType.missileLaunchVisualOffsetXSD and unitType.missileLaunchVisualOffsetXHD or nil,
58
- [8] = unitType.missileLaunchVisualOffsetYSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_Y and unitType.missileLaunchVisualOffsetYSD or nil,
59
- [9] = unitType.missileLaunchVisualOffsetYHD ~= unitType.missileLaunchVisualOffsetYSD and unitType.missileLaunchVisualOffsetYHD or nil
60
- }
61
- end
62
- )
63
- end),
64
- function(data)
65
- local ____setmetatable_6 = setmetatable
66
- local ____LocalClient_isHD_0
67
- if LocalClient.isHD then
68
- ____LocalClient_isHD_0 = data[1] or data[0]
69
- else
70
- ____LocalClient_isHD_0 = data[0]
71
- end
72
- local ____data__2_4 = data[2]
73
- local ____data__3_5 = data[3]
74
- local ____LocalClient_isHD_1
75
- if LocalClient.isHD then
76
- ____LocalClient_isHD_1 = data[5] or data[4]
77
- else
78
- ____LocalClient_isHD_1 = data[4]
79
- end
80
- local ____LocalClient_isHD_2
81
- if LocalClient.isHD then
82
- ____LocalClient_isHD_2 = data[7] or data[6]
83
- else
84
- ____LocalClient_isHD_2 = data[6]
85
- end
86
- local ____LocalClient_isHD_3
87
- if LocalClient.isHD then
88
- ____LocalClient_isHD_3 = data[9] or data[8]
89
- else
90
- ____LocalClient_isHD_3 = data[8]
91
- end
92
- return ____setmetatable_6({
93
- impactOffsetZ = ____LocalClient_isHD_0,
94
- launchOffsetX = ____data__2_4,
95
- launchOffsetY = ____data__3_5,
96
- launchOffsetZ = ____LocalClient_isHD_1,
97
- launchVisualOffsetX = ____LocalClient_isHD_2,
98
- launchVisualOffsetY = ____LocalClient_isHD_3
99
- }, METATABLE)
100
- end
101
- ),
102
- {__index = function(self)
103
- return DEFAULT_VALUES
104
- end}
105
- )
106
- end)()
124
+ ____exports.MISSILE_DATA_BY_UNIT_TYPE_ID = setmetatable(
125
+ mapValues(rawDataByUnitTypeId, resolveData),
126
+ {__index = function(self)
127
+ return DEFAULT_VALUES
128
+ end}
129
+ )
130
+ warpack.afterMapInit(function()
131
+ for unitTypeId, data in pairs(rawDataByUnitTypeId) do
132
+ ____exports.MISSILE_DATA_BY_UNIT_TYPE_ID[unitTypeId] = resolveData(data)
133
+ end
134
+ end)
107
135
  return ____exports