warscript 0.0.1-dev.9b0216a → 0.0.1-dev.9bcb501

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 (442) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/dummy.lua +4 -2
  6. package/core/types/effect.d.ts +12 -4
  7. package/core/types/effect.lua +67 -104
  8. package/core/types/frame.d.ts +16 -2
  9. package/core/types/frame.lua +141 -77
  10. package/core/types/handle.lua +9 -9
  11. package/core/types/item.d.ts +1 -0
  12. package/core/types/item.lua +1 -0
  13. package/core/types/missile.lua +8 -7
  14. package/core/types/player.d.ts +18 -1
  15. package/core/types/player.lua +76 -26
  16. package/core/types/playerCamera.d.ts +2 -0
  17. package/core/types/playerCamera.lua +123 -5
  18. package/core/types/playerColor.lua +4 -3
  19. package/core/types/sound.d.ts +18 -25
  20. package/core/types/sound.lua +113 -33
  21. package/core/types/tileCell.d.ts +18 -3
  22. package/core/types/tileCell.lua +108 -0
  23. package/core/types/timer.d.ts +9 -8
  24. package/core/types/timer.lua +45 -23
  25. package/core/types/unit.d.ts +5 -0
  26. package/core/types/unit.lua +5 -0
  27. package/core/util.d.ts +3 -1
  28. package/core/util.lua +115 -4
  29. package/decl/native.d.ts +1719 -964
  30. package/destroyable.d.ts +1 -0
  31. package/destroyable.lua +9 -0
  32. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  33. package/engine/ability-type-extended-tooltip.lua +44 -0
  34. package/engine/behavior.d.ts +14 -1
  35. package/engine/behavior.lua +230 -70
  36. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  37. package/engine/behaviour/ability/apply-buff.lua +36 -4
  38. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  39. package/engine/behaviour/ability/damage.d.ts +13 -3
  40. package/engine/behaviour/ability/damage.lua +41 -49
  41. package/engine/behaviour/ability/emulate-impact.d.ts +15 -1
  42. package/engine/behaviour/ability/emulate-impact.lua +92 -4
  43. package/engine/behaviour/ability/instant-impact.d.ts +12 -1
  44. package/engine/behaviour/ability/instant-impact.lua +17 -2
  45. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  46. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  47. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  48. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  49. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  50. package/engine/behaviour/ability/restore-mana.lua +6 -6
  51. package/engine/behaviour/ability.d.ts +28 -6
  52. package/engine/behaviour/ability.lua +188 -27
  53. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  54. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  55. package/engine/behaviour/unit.d.ts +41 -2
  56. package/engine/behaviour/unit.lua +270 -6
  57. package/engine/buff.d.ts +130 -59
  58. package/engine/buff.lua +638 -307
  59. package/engine/index.d.ts +2 -1
  60. package/engine/internal/ability.d.ts +14 -1
  61. package/engine/internal/ability.lua +112 -42
  62. package/engine/internal/item/ability.lua +92 -15
  63. package/engine/internal/item/fields.d.ts +12 -0
  64. package/engine/internal/item/fields.lua +33 -0
  65. package/engine/internal/item/owner-cache.d.ts +5 -0
  66. package/engine/internal/item/owner-cache.lua +4 -0
  67. package/engine/internal/item+owner.d.ts +2 -0
  68. package/engine/internal/item+owner.lua +37 -8
  69. package/engine/internal/item.d.ts +34 -18
  70. package/engine/internal/item.lua +308 -102
  71. package/engine/internal/mechanics/ability-duration.lua +1 -1
  72. package/engine/internal/mechanics/cast-ability.lua +6 -3
  73. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  74. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  75. package/engine/internal/misc/frame-coordinates.lua +21 -0
  76. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  77. package/engine/internal/misc/get-terrain-z.lua +11 -0
  78. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  79. package/engine/internal/misc/player-local-handle.lua +5 -0
  80. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  81. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  82. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  83. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  84. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  85. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  86. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  87. package/engine/internal/object-data/evasion-probability.lua +16 -0
  88. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  89. package/engine/internal/object-data/health-bonus.lua +16 -0
  90. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  91. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  92. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  93. package/engine/internal/object-data/mana-bonus.lua +16 -0
  94. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  95. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  96. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  97. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  98. package/engine/internal/unit/ability.d.ts +35 -0
  99. package/engine/internal/unit/ability.lua +114 -9
  100. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  101. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  102. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  103. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  104. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  105. package/engine/internal/unit/allowed-targets.lua +9 -1
  106. package/engine/internal/unit/appearance.d.ts +15 -0
  107. package/engine/internal/unit/appearance.lua +85 -0
  108. package/engine/internal/unit/attributes.d.ts +17 -0
  109. package/engine/internal/unit/attributes.lua +46 -0
  110. package/engine/internal/unit/bonus.d.ts +19 -0
  111. package/engine/internal/unit/bonus.lua +130 -8
  112. package/engine/internal/unit/buff.d.ts +2 -2
  113. package/engine/internal/unit/buff.lua +34 -19
  114. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  115. package/engine/internal/unit/equipment-inventory.lua +233 -0
  116. package/engine/internal/unit/expiration-timer.lua +1 -1
  117. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  118. package/engine/internal/unit/extended-inventory.lua +99 -0
  119. package/engine/internal/unit/fly-height.d.ts +7 -0
  120. package/engine/internal/unit/fly-height.lua +20 -0
  121. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  122. package/engine/internal/unit/ignore-events-items.lua +14 -0
  123. package/engine/internal/unit/interrupts.d.ts +12 -0
  124. package/engine/internal/unit/interrupts.lua +28 -0
  125. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  126. package/engine/internal/unit/inventory.lua +87 -0
  127. package/engine/internal/unit/item-container.d.ts +25 -0
  128. package/engine/internal/unit/item-container.lua +11 -0
  129. package/engine/internal/unit/item-order-events.d.ts +17 -0
  130. package/engine/internal/unit/item-order-events.lua +67 -0
  131. package/engine/internal/unit/item-slot.d.ts +27 -0
  132. package/engine/internal/unit/item-slot.lua +92 -0
  133. package/engine/internal/unit/main-selected.lua +12 -27
  134. package/engine/internal/unit/order.d.ts +20 -0
  135. package/engine/internal/unit/order.lua +136 -0
  136. package/engine/internal/unit/range-event.d.ts +12 -0
  137. package/engine/internal/unit/range-event.lua +90 -0
  138. package/engine/internal/unit/scale.d.ts +7 -0
  139. package/engine/internal/unit/scale.lua +20 -0
  140. package/engine/internal/unit+ability.d.ts +2 -1
  141. package/engine/internal/unit+ability.lua +83 -3
  142. package/engine/internal/unit+bonus.lua +3 -3
  143. package/engine/internal/unit+damage.d.ts +11 -11
  144. package/engine/internal/unit+damage.lua +43 -14
  145. package/engine/internal/unit+rally.lua +9 -31
  146. package/engine/internal/unit+spellSteal.lua +1 -2
  147. package/engine/internal/unit-missile-data.lua +96 -68
  148. package/engine/internal/unit-missile-launch.lua +65 -27
  149. package/engine/internal/unit.d.ts +45 -34
  150. package/engine/internal/unit.lua +433 -327
  151. package/engine/lightning.d.ts +12 -5
  152. package/engine/lightning.lua +52 -18
  153. package/engine/local-client.d.ts +28 -0
  154. package/engine/local-client.lua +324 -54
  155. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  156. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  157. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  158. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  159. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  160. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  161. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  162. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  163. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  164. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  165. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  166. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  167. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  168. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  169. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  170. package/engine/object-data/auxiliary/item-class.lua +2 -0
  171. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  172. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  173. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  174. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  175. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  176. package/engine/object-data/auxiliary/order-type.lua +2 -0
  177. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  178. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  179. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  180. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  181. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  182. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  183. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  184. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  185. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  186. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  187. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  188. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  189. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  190. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  191. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  192. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  193. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  194. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  195. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  196. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  197. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  198. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  199. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  200. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  201. package/engine/object-data/entry/ability-type/blank-configurable.lua +14 -3
  202. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  203. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  204. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  205. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  206. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  207. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  208. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  209. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  210. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  211. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  212. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  213. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  214. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  215. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  216. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  217. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  218. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  219. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  220. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  221. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  222. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  223. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  224. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  225. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  226. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  227. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  228. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  229. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  230. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  231. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  232. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  233. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  234. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  235. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  236. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  237. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  238. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  239. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  240. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  241. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  242. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  243. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  244. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  245. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  246. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  247. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  248. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  249. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  250. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  251. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  252. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  253. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  254. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  255. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  256. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  257. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  258. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  259. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  260. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  261. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  262. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  263. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  264. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  265. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  266. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  267. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  268. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  269. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  270. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  271. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  272. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  273. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  274. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  275. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  276. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  277. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  278. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  279. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  280. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  281. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  282. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  283. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  284. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  285. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  286. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  287. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  288. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  289. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  290. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  291. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  292. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  293. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  294. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  295. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  296. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  297. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  298. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  299. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  300. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  301. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  302. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  303. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  304. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  305. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  306. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  307. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  308. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  309. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  310. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  311. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  312. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  313. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  314. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  315. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  316. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  317. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  318. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  319. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  320. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  321. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  322. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  323. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  324. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  325. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  326. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  327. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  328. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  329. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  330. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  331. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  332. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  333. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  334. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  335. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  336. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  337. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  338. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  339. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  340. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  341. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  342. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  343. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  344. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  345. package/engine/object-data/entry/ability-type/web.lua +52 -0
  346. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  347. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  348. package/engine/object-data/entry/ability-type.d.ts +50 -21
  349. package/engine/object-data/entry/ability-type.lua +384 -35
  350. package/engine/object-data/entry/buff-type/applicable.lua +131 -139
  351. package/engine/object-data/entry/buff-type.d.ts +10 -12
  352. package/engine/object-data/entry/buff-type.lua +39 -29
  353. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  354. package/engine/object-data/entry/destructible-type.lua +181 -0
  355. package/engine/object-data/entry/item-type.d.ts +18 -3
  356. package/engine/object-data/entry/item-type.lua +88 -4
  357. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  358. package/engine/object-data/entry/lightning-type.lua +1 -1
  359. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  360. package/engine/object-data/entry/sound-preset.lua +140 -0
  361. package/engine/object-data/entry/unit-type.d.ts +81 -6
  362. package/engine/object-data/entry/unit-type.lua +606 -93
  363. package/engine/object-data/entry/upgrade.d.ts +2 -2
  364. package/engine/object-data/entry/upgrade.lua +4 -4
  365. package/engine/object-data/entry.d.ts +21 -14
  366. package/engine/object-data/entry.lua +68 -32
  367. package/engine/object-field/ability.d.ts +8 -5
  368. package/engine/object-field/ability.lua +10 -6
  369. package/engine/object-field/item.d.ts +22 -0
  370. package/engine/object-field/item.lua +118 -0
  371. package/engine/object-field/unit.d.ts +72 -3
  372. package/engine/object-field/unit.lua +268 -7
  373. package/engine/object-field.d.ts +26 -7
  374. package/engine/object-field.lua +362 -117
  375. package/engine/random.d.ts +10 -0
  376. package/engine/random.lua +21 -0
  377. package/engine/standard/entries/ability-type.d.ts +3102 -7
  378. package/engine/standard/entries/ability-type.lua +0 -6
  379. package/engine/standard/entries/buff-type.d.ts +48 -0
  380. package/engine/standard/entries/buff-type.lua +46 -0
  381. package/engine/standard/entries/item-type.d.ts +1299 -0
  382. package/engine/standard/entries/item-type.lua +2 -0
  383. package/engine/standard/entries/lightning-type.d.ts +42 -15
  384. package/engine/standard/entries/lightning-type.lua +0 -14
  385. package/engine/standard/entries/sound-preset.d.ts +10 -0
  386. package/engine/standard/entries/sound-preset.lua +10 -0
  387. package/engine/standard/entries/unit-type.d.ts +5 -0
  388. package/engine/standard/entries/unit-type.lua +5 -0
  389. package/engine/standard/fields/ability.d.ts +4 -4
  390. package/engine/standard/fields/ability.lua +4 -4
  391. package/engine/standard/fields/item.d.ts +4 -0
  392. package/engine/standard/fields/item.lua +6 -0
  393. package/engine/standard/fields/unit.d.ts +12 -0
  394. package/engine/standard/fields/unit.lua +20 -0
  395. package/engine/synchronization.d.ts +11 -0
  396. package/engine/synchronization.lua +77 -0
  397. package/engine/text-tag.d.ts +36 -2
  398. package/engine/text-tag.lua +250 -10
  399. package/engine/unit.d.ts +12 -1
  400. package/engine/unit.lua +12 -1
  401. package/event.d.ts +1 -1
  402. package/lualib_bundle.lua +1 -1
  403. package/math.d.ts +2 -0
  404. package/math.lua +14 -0
  405. package/net/socket.lua +1 -1
  406. package/network.lua +25 -1
  407. package/objutil/buff.lua +12 -11
  408. package/objutil/object.lua +1 -1
  409. package/objutil/unit.lua +8 -0
  410. package/operation.d.ts +8 -1
  411. package/operation.lua +38 -18
  412. package/package.json +3 -23
  413. package/patch-lua.lua +15 -0
  414. package/patch-lualib.lua +1 -1
  415. package/utility/arrays.d.ts +9 -1
  416. package/utility/arrays.lua +28 -0
  417. package/utility/callback-array.d.ts +17 -0
  418. package/utility/callback-array.lua +61 -0
  419. package/utility/functions.d.ts +8 -0
  420. package/utility/functions.lua +13 -0
  421. package/utility/linked-map.d.ts +35 -0
  422. package/utility/linked-map.lua +107 -0
  423. package/utility/linked-set.d.ts +5 -1
  424. package/utility/linked-set.lua +49 -1
  425. package/utility/lua-maps.d.ts +15 -2
  426. package/utility/lua-maps.lua +53 -2
  427. package/utility/lua-sets.d.ts +2 -0
  428. package/utility/lua-sets.lua +7 -0
  429. package/utility/random.d.ts +102 -0
  430. package/utility/random.lua +273 -0
  431. package/utility/records.lua +20 -1
  432. package/utility/reflection.lua +11 -7
  433. package/utility/types.d.ts +3 -0
  434. package/utility/unordered-map.d.ts +27 -0
  435. package/utility/unordered-map.lua +99 -0
  436. package/core/types/order.d.ts +0 -25
  437. package/core/types/order.lua +0 -55
  438. package/engine/internal/unit/item.lua +0 -79
  439. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  440. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  441. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  442. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -2,6 +2,8 @@ local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
5
7
  local ____exports = {}
6
8
  local ____unit = require("engine.internal.unit")
7
9
  local Unit = ____unit.Unit
@@ -17,9 +19,11 @@ local array = ____arrays.array
17
19
  local map = ____arrays.map
18
20
  local mapIndexed = ____arrays.mapIndexed
19
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
22
+ local attachmentPointToNodeFQN = ____attachment_2Dpreset.attachmentPointToNodeFQN
20
23
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
21
24
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
22
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
25
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
26
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
23
27
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
24
28
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
25
29
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -33,11 +37,24 @@ local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.u
33
37
  local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
34
38
  local ____upgrade = require("engine.object-data.entry.upgrade")
35
39
  local Upgrade = ____upgrade.Upgrade
40
+ local ____sound = require("core.types.sound")
41
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
42
+ local Sound3D = ____sound.Sound3D
43
+ local SoundSettings = ____sound.SoundSettings
44
+ local ____lua_2Dsets = require("utility.lua-sets")
45
+ local luaSetOf = ____lua_2Dsets.luaSetOf
46
+ local ____local_2Dclient = require("engine.local-client")
47
+ local LocalClient = ____local_2Dclient.LocalClient
36
48
  local castAnimationFQNByAbilityTypeId = {}
37
49
  local isButtonVisibleFalseAbilityTypes = {}
38
50
  local casterCastingEffectPresetsByAbilityTypeId = {}
39
51
  local casterChannelingEffectPresetsByAbilityTypeId = {}
40
52
  local targetCastingEffectPresetsByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
55
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
56
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
57
+ local targetEffectSoundPresetByAbilityTypeId = {}
41
58
  ____exports.AbilityType = __TS__Class()
42
59
  local AbilityType = ____exports.AbilityType
43
60
  AbilityType.name = "AbilityType"
@@ -113,7 +130,7 @@ __TS__SetDescriptor(
113
130
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
114
131
  end,
115
132
  set = function(self, casterCastingEffectPresets)
116
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
133
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
117
134
  end
118
135
  },
119
136
  true
@@ -126,20 +143,20 @@ __TS__SetDescriptor(
126
143
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
127
144
  end,
128
145
  set = function(self, casterChannelingEffectPresets)
129
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
146
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
130
147
  end
131
148
  },
132
149
  true
133
150
  )
134
151
  __TS__SetDescriptor(
135
152
  AbilityType.prototype,
136
- "casterAttachmentPresets",
153
+ "casterEffectPresets",
137
154
  {
138
155
  get = function(self)
139
156
  return self:getAttachmentPresetListField("acat", {"acap", "aca1"})
140
157
  end,
141
- set = function(self, casterAttachmentPresets)
142
- self:setAttachmentPresetListField("acat", {"acap", "aca1"}, "acac", casterAttachmentPresets)
158
+ set = function(self, casterEffectPresets)
159
+ self:setAttachmentPresetListField("acat", {"acap", "aca1"}, "acac", casterEffectPresets)
143
160
  end
144
161
  },
145
162
  true
@@ -157,6 +174,45 @@ __TS__SetDescriptor(
157
174
  },
158
175
  true
159
176
  )
177
+ __TS__SetDescriptor(
178
+ AbilityType.prototype,
179
+ "effectModelPathsSD",
180
+ {
181
+ get = function(self)
182
+ return self:getStringsField("aeat:sd")
183
+ end,
184
+ set = function(self, effectModelPathsSD)
185
+ self:setStringsField("aeat:sd", effectModelPathsSD)
186
+ end
187
+ },
188
+ true
189
+ )
190
+ __TS__SetDescriptor(
191
+ AbilityType.prototype,
192
+ "effectModelPathsHD",
193
+ {
194
+ get = function(self)
195
+ return self:getStringsField("aeat:hd")
196
+ end,
197
+ set = function(self, effectModelPathsHD)
198
+ self:setStringsField("aeat:hd", effectModelPathsHD)
199
+ end
200
+ },
201
+ true
202
+ )
203
+ __TS__SetDescriptor(
204
+ AbilityType.prototype,
205
+ "effectModelPathsDE",
206
+ {
207
+ get = function(self)
208
+ return self:getStringsField("aeat:de")
209
+ end,
210
+ set = function(self, effectModelPathsDE)
211
+ self:setStringsField("aeat:de", effectModelPathsDE)
212
+ end
213
+ },
214
+ true
215
+ )
160
216
  __TS__SetDescriptor(
161
217
  AbilityType.prototype,
162
218
  "iconPath",
@@ -196,6 +252,19 @@ __TS__SetDescriptor(
196
252
  },
197
253
  true
198
254
  )
255
+ __TS__SetDescriptor(
256
+ AbilityType.prototype,
257
+ "iconPathDE",
258
+ {
259
+ get = function(self)
260
+ return self:getStringField("aart:de")
261
+ end,
262
+ set = function(self, iconPathDE)
263
+ self:setStringField("aart:de", iconPathDE)
264
+ end
265
+ },
266
+ true
267
+ )
199
268
  __TS__SetDescriptor(
200
269
  AbilityType.prototype,
201
270
  "isButtonVisible",
@@ -271,10 +340,10 @@ __TS__SetDescriptor(
271
340
  "lightningTypeIds",
272
341
  {
273
342
  get = function(self)
274
- return self:getObjectDataEntryIdsField("alig")
343
+ return self:getObjectDataEntryNumericIdsField("alig")
275
344
  end,
276
345
  set = function(self, lightningTypeIds)
277
- self:setObjectDataEntryIdsField("alig", lightningTypeIds)
346
+ self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
278
347
  end
279
348
  },
280
349
  true
@@ -318,6 +387,19 @@ __TS__SetDescriptor(
318
387
  },
319
388
  true
320
389
  )
390
+ __TS__SetDescriptor(
391
+ AbilityType.prototype,
392
+ "missileModelPathDE",
393
+ {
394
+ get = function(self)
395
+ return self:getStringField("amat:de")
396
+ end,
397
+ set = function(self, missileModelPathDE)
398
+ self:setStringField("amat:de", missileModelPathDE)
399
+ end
400
+ },
401
+ true
402
+ )
321
403
  __TS__SetDescriptor(
322
404
  AbilityType.prototype,
323
405
  "missileMovementArc",
@@ -346,13 +428,30 @@ __TS__SetDescriptor(
346
428
  )
347
429
  __TS__SetDescriptor(
348
430
  AbilityType.prototype,
349
- "specialAttachmentPreset",
431
+ "specialEffectModelPaths",
350
432
  {
351
433
  get = function(self)
352
- return self:getAttachmentPresetField("asat", "aspt")
434
+ return self:getStringsField("asat")
353
435
  end,
354
- set = function(self, specialAttachmentPreset)
355
- self:setAttachmentPresetField("asat", "aspt", specialAttachmentPreset)
436
+ set = function(self, specialEffectModelPaths)
437
+ self:setStringsField("asat", specialEffectModelPaths)
438
+ end
439
+ },
440
+ true
441
+ )
442
+ __TS__SetDescriptor(
443
+ AbilityType.prototype,
444
+ "specialEffectAttachmentPoint",
445
+ {
446
+ get = function(self)
447
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField("aspt"))
448
+ return {nodeName = nodeName, nodeQualifiers = nodeQualifiers}
449
+ end,
450
+ set = function(self, specialEffectAttachmentPoint)
451
+ self:setStringField(
452
+ "aspt",
453
+ attachmentPointToNodeFQN(specialEffectAttachmentPoint)
454
+ )
356
455
  end
357
456
  },
358
457
  true
@@ -365,7 +464,59 @@ __TS__SetDescriptor(
365
464
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
366
465
  end,
367
466
  set = function(self, targetCastingEffectPresets)
368
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
467
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
468
+ end
469
+ },
470
+ true
471
+ )
472
+ __TS__SetDescriptor(
473
+ AbilityType.prototype,
474
+ "targetChannelingEffectPresets",
475
+ {
476
+ get = function(self)
477
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
478
+ end,
479
+ set = function(self, targetChannelingEffectPresets)
480
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
481
+ end
482
+ },
483
+ true
484
+ )
485
+ __TS__SetDescriptor(
486
+ AbilityType.prototype,
487
+ "targetChannelingEffectPresetsSD",
488
+ {
489
+ get = function(self)
490
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
491
+ end,
492
+ set = function(self, targetChannelingEffectPresetsSD)
493
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
494
+ end
495
+ },
496
+ true
497
+ )
498
+ __TS__SetDescriptor(
499
+ AbilityType.prototype,
500
+ "targetChannelingEffectPresetsHD",
501
+ {
502
+ get = function(self)
503
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
504
+ end,
505
+ set = function(self, targetChannelingEffectPresetsHD)
506
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
507
+ end
508
+ },
509
+ true
510
+ )
511
+ __TS__SetDescriptor(
512
+ AbilityType.prototype,
513
+ "targetChannelingEffectPresetsDE",
514
+ {
515
+ get = function(self)
516
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
517
+ end,
518
+ set = function(self, targetChannelingEffectPresetsDE)
519
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
369
520
  end
370
521
  },
371
522
  true
@@ -451,6 +602,33 @@ __TS__SetDescriptor(
451
602
  },
452
603
  true
453
604
  )
605
+ __TS__SetDescriptor(
606
+ AbilityType.prototype,
607
+ "targetEffectPresetsDE",
608
+ {
609
+ get = function(self)
610
+ return self:getAttachmentPresetListField(
611
+ "atat:de",
612
+ array(
613
+ 6,
614
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
615
+ )
616
+ )
617
+ end,
618
+ set = function(self, targetEffectPresetsDE)
619
+ self:setAttachmentPresetListField(
620
+ "atat:de",
621
+ array(
622
+ 6,
623
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
624
+ ),
625
+ "atac:de",
626
+ targetEffectPresetsDE
627
+ )
628
+ end
629
+ },
630
+ true
631
+ )
454
632
  __TS__SetDescriptor(
455
633
  AbilityType.prototype,
456
634
  "turnOffButtonPositionX",
@@ -508,7 +686,7 @@ __TS__SetDescriptor(
508
686
  "techTreeDependencies",
509
687
  {
510
688
  get = function(self)
511
- local techTreeDependencyIds = self:getObjectDataEntryIdsField("areq")
689
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
512
690
  local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
513
691
  return mapIndexed(
514
692
  techTreeDependencyIds,
@@ -528,7 +706,7 @@ __TS__SetDescriptor(
528
706
  map(techTreeDependencies, extractTechTreeDependencyInputLevel),
529
707
  function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
530
708
  )
531
- self:setObjectDataEntryIdsField("areq", techTreeDependencyIds)
709
+ self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
532
710
  self:setNumbersField("arqa", techTreeDependencyInternalLevels)
533
711
  end
534
712
  },
@@ -718,26 +896,40 @@ __TS__SetDescriptor(
718
896
  )
719
897
  __TS__SetDescriptor(
720
898
  AbilityType.prototype,
721
- "soundPresetName",
899
+ "casterEffectSoundPresetId",
722
900
  {
723
901
  get = function(self)
724
- return self:getStringField("aefs")
902
+ local casterEffectSoundPresetId = self:getStringField("aefs")
903
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
725
904
  end,
726
- set = function(self, soundPresetName)
727
- self:setStringField("aefs", soundPresetName)
905
+ set = function(self, casterEffectSoundPresetId)
906
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
728
907
  end
729
908
  },
730
909
  true
731
910
  )
732
911
  __TS__SetDescriptor(
733
912
  AbilityType.prototype,
734
- "loopingSoundPresetName",
913
+ "casterEffectLoopingSoundPresetId",
735
914
  {
736
915
  get = function(self)
737
916
  return self:getStringField("aefl")
738
917
  end,
739
- set = function(self, loopingSoundPresetName)
740
- self:setStringField("aefl", loopingSoundPresetName)
918
+ set = function(self, casterEffectLoopingSoundPresetId)
919
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
920
+ end
921
+ },
922
+ true
923
+ )
924
+ __TS__SetDescriptor(
925
+ AbilityType.prototype,
926
+ "targetEffectSoundPresetId",
927
+ {
928
+ get = function(self)
929
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
930
+ end,
931
+ set = function(self, targetEffectSoundPresetId)
932
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
741
933
  end
742
934
  },
743
935
  true
@@ -796,10 +988,10 @@ __TS__SetDescriptor(
796
988
  "buffTypeIds",
797
989
  {
798
990
  get = function(self)
799
- return self:getObjectDataEntryIdsLevelField("abuf")
991
+ return self:getObjectDataEntryNumericIdsLevelField("abuf")
800
992
  end,
801
993
  set = function(self, buffTypeIds)
802
- self:setObjectDataEntryIdsLevelField("abuf", buffTypeIds)
994
+ self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
803
995
  end
804
996
  },
805
997
  true
@@ -848,10 +1040,10 @@ __TS__SetDescriptor(
848
1040
  "effectBuffTypeIds",
849
1041
  {
850
1042
  get = function(self)
851
- return self:getObjectDataEntryIdsLevelField("aeff")
1043
+ return self:getObjectDataEntryNumericIdsLevelField("aeff")
852
1044
  end,
853
1045
  set = function(self, effectBuffTypeIds)
854
- self:setObjectDataEntryIdsLevelField("aeff", effectBuffTypeIds)
1046
+ self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
855
1047
  end
856
1048
  },
857
1049
  true
@@ -869,6 +1061,19 @@ __TS__SetDescriptor(
869
1061
  },
870
1062
  true
871
1063
  )
1064
+ __TS__SetDescriptor(
1065
+ AbilityType.prototype,
1066
+ "isHeroAbility",
1067
+ {
1068
+ get = function(self)
1069
+ return self:getBooleanField("aher")
1070
+ end,
1071
+ set = function(self, isHeroAbility)
1072
+ self:setBooleanField("aher", isHeroAbility)
1073
+ end
1074
+ },
1075
+ true
1076
+ )
872
1077
  __TS__SetDescriptor(
873
1078
  AbilityType.prototype,
874
1079
  "learnLevelMinimum",
@@ -959,13 +1164,38 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
959
1164
  4,
960
1165
  function(caster, ability)
961
1166
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
962
- Timer:run(function()
963
- caster:playAnimation(animationFQN)
964
- end)
1167
+ Timer:run(caster, "playAnimation", animationFQN)
965
1168
  end
966
1169
  end
967
1170
  )
968
1171
  end
1172
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
1173
+ if soundPresetId ~= nil then
1174
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
1175
+ 4,
1176
+ function(caster, ability, target)
1177
+ if __TS__InstanceOf(target, Unit) then
1178
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
1179
+ else
1180
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
1181
+ end
1182
+ end
1183
+ )
1184
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1185
+ 4,
1186
+ function(caster, ability, x, y)
1187
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1188
+ end
1189
+ )
1190
+ end
1191
+ end
1192
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1193
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1194
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1195
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1196
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1197
+ end
1198
+ end)
969
1199
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
970
1200
  return mapValues(
971
1201
  casterCastingEffectPresetsByAbilityTypeId,
@@ -978,10 +1208,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
978
1208
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
979
1209
  )
980
1210
  end)
1211
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1212
+ return mapValues(
1213
+ casterCastingEffectPresetsByAbilityTypeId,
1214
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1215
+ )
1216
+ end)
981
1217
  local casterCastingEffectsByCaster = {}
982
1218
  local function handleAbilityCastingStartEvent(caster, ability)
983
1219
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
984
1220
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1221
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
985
1222
  local effects = {}
986
1223
  if effectModelPaths ~= nil then
987
1224
  for i = 1, #effectModelPaths do
@@ -990,7 +1227,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
990
1227
  if attachmentPoint == nil or attachmentPoint == "" then
991
1228
  attachmentPoint = "origin"
992
1229
  end
993
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1230
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
994
1231
  end
995
1232
  end
996
1233
  casterCastingEffectsByCaster[caster] = effects
@@ -1021,10 +1258,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1021
1258
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1022
1259
  )
1023
1260
  end)
1261
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1262
+ return mapValues(
1263
+ casterChannelingEffectPresetsByAbilityTypeId,
1264
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1265
+ )
1266
+ end)
1024
1267
  local casterChannelingEffectsByCaster = {}
1025
1268
  local function handleAbilityChannelingStartEvent(caster, ability)
1026
1269
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1027
1270
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1271
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1028
1272
  local effects = {}
1029
1273
  if effectModelPaths ~= nil then
1030
1274
  for i = 1, #effectModelPaths do
@@ -1033,23 +1277,128 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1033
1277
  if attachmentPoint == nil or attachmentPoint == "" then
1034
1278
  attachmentPoint = "origin"
1035
1279
  end
1036
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1280
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1037
1281
  end
1038
1282
  end
1039
1283
  casterChannelingEffectsByCaster[caster] = effects
1040
1284
  end
1285
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1286
+ local function toData(presets)
1287
+ if presets == nil then
1288
+ return nil
1289
+ end
1290
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1291
+ local parameters = map(presets, "parameters")
1292
+ return {
1293
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1294
+ attachmentPoints = __TS__ArraySome(
1295
+ attachmentPoints,
1296
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1297
+ ) and attachmentPoints or nil,
1298
+ parameters = __TS__ArraySome(
1299
+ presets,
1300
+ function(____, preset) return preset.parameters ~= nil end
1301
+ ) and parameters or nil
1302
+ }
1303
+ end
1304
+ local abilityTypeIds = {}
1305
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1306
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1307
+ abilityTypeIds[abilityTypeId] = true
1308
+ end
1309
+ end
1310
+ local result = {}
1311
+ for abilityTypeId in pairs(abilityTypeIds) do
1312
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1313
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1314
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1315
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1316
+ local ____math_max_8 = math.max
1317
+ local ____opt_0 = presetsSD or presets
1318
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1319
+ local ____opt_2 = presetsHD or presets
1320
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1321
+ local ____opt_4 = presetsDE or presets
1322
+ result[abilityTypeId] = {
1323
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1324
+ data = toData(presets),
1325
+ dataSD = toData(presetsSD),
1326
+ dataHD = toData(presetsHD),
1327
+ dataDE = toData(presetsDE)
1328
+ }
1329
+ end
1330
+ return result
1331
+ end)
1332
+ local targetChannelingEffectsByCaster = {}
1333
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1334
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1335
+ if effectsData == nil then
1336
+ return
1337
+ end
1338
+ local graphicsMode = LocalClient.graphicsMode
1339
+ local ____temp_10
1340
+ if graphicsMode == 0 then
1341
+ ____temp_10 = effectsData.dataSD
1342
+ else
1343
+ local ____temp_9
1344
+ if graphicsMode == 1 then
1345
+ ____temp_9 = effectsData.dataHD
1346
+ else
1347
+ ____temp_9 = effectsData.dataDE
1348
+ end
1349
+ ____temp_10 = ____temp_9
1350
+ end
1351
+ local data = ____temp_10 or effectsData.data
1352
+ local modelPaths = data and data.modelPaths
1353
+ local attachmentPoints = data and data.attachmentPoints
1354
+ local parameters = data and data.parameters
1355
+ local effects = {}
1356
+ for i = 1, effectsData.effectCount do
1357
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1358
+ local effectParameters = parameters and parameters[i]
1359
+ if type(xOrWidget) == "number" then
1360
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1361
+ else
1362
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1363
+ if attachmentPoint == nil or attachmentPoint == "" then
1364
+ attachmentPoint = "origin"
1365
+ end
1366
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1367
+ end
1368
+ end
1369
+ targetChannelingEffectsByCaster[caster] = effects
1370
+ end
1371
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1372
+ createTargetChannelingEffects(caster, ability.typeId, target)
1373
+ end
1374
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1375
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1376
+ end
1041
1377
  local function handleAbilityStopChannelingEvent(caster)
1042
- local effects = casterChannelingEffectsByCaster[caster]
1043
- if effects ~= nil then
1044
- for i = 1, #effects do
1045
- effects[i]:destroy()
1378
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1379
+ if casterEffects ~= nil then
1380
+ for i = 1, #casterEffects do
1381
+ casterEffects[i]:destroy()
1046
1382
  end
1047
1383
  casterChannelingEffectsByCaster[caster] = nil
1048
1384
  end
1385
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1386
+ if targetEffects ~= nil then
1387
+ for i = 1, #targetEffects do
1388
+ targetEffects[i]:destroy()
1389
+ end
1390
+ targetChannelingEffectsByCaster[caster] = nil
1391
+ end
1049
1392
  end
1050
1393
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1051
1394
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1052
1395
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1053
1396
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1054
1397
  end
1398
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1399
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1400
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1401
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1402
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1403
+ end
1055
1404
  return ____exports