warscript 0.0.1-dev.5a50e5d → 0.0.1-dev.5bc80ec

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 (414) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/dummy.lua +4 -2
  4. package/core/types/effect.d.ts +12 -4
  5. package/core/types/effect.lua +67 -104
  6. package/core/types/frame.d.ts +16 -2
  7. package/core/types/frame.lua +141 -77
  8. package/core/types/handle.lua +9 -9
  9. package/core/types/item.d.ts +1 -0
  10. package/core/types/item.lua +1 -0
  11. package/core/types/missile.lua +7 -6
  12. package/core/types/player.d.ts +18 -1
  13. package/core/types/player.lua +76 -26
  14. package/core/types/playerCamera.d.ts +2 -0
  15. package/core/types/playerCamera.lua +123 -5
  16. package/core/types/playerColor.lua +4 -3
  17. package/core/types/sound.d.ts +18 -26
  18. package/core/types/sound.lua +99 -53
  19. package/core/types/tileCell.d.ts +18 -3
  20. package/core/types/tileCell.lua +108 -0
  21. package/core/types/timer.d.ts +9 -8
  22. package/core/types/timer.lua +45 -23
  23. package/core/types/unit.d.ts +5 -0
  24. package/core/types/unit.lua +5 -0
  25. package/core/util.d.ts +3 -1
  26. package/core/util.lua +109 -3
  27. package/decl/native.d.ts +1719 -964
  28. package/destroyable.d.ts +1 -0
  29. package/destroyable.lua +9 -0
  30. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  31. package/engine/ability-type-extended-tooltip.lua +44 -0
  32. package/engine/behavior.d.ts +14 -1
  33. package/engine/behavior.lua +230 -70
  34. package/engine/behaviour/ability/apply-buff.lua +5 -5
  35. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  36. package/engine/behaviour/ability/damage.d.ts +10 -3
  37. package/engine/behaviour/ability/damage.lua +41 -49
  38. package/engine/behaviour/ability/emulate-impact.d.ts +15 -1
  39. package/engine/behaviour/ability/emulate-impact.lua +96 -7
  40. package/engine/behaviour/ability/instant-impact.d.ts +12 -1
  41. package/engine/behaviour/ability/instant-impact.lua +17 -2
  42. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  43. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  44. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  45. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  46. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  47. package/engine/behaviour/ability/restore-mana.lua +6 -6
  48. package/engine/behaviour/ability.d.ts +22 -6
  49. package/engine/behaviour/ability.lua +133 -29
  50. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  51. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  52. package/engine/behaviour/unit.d.ts +40 -3
  53. package/engine/behaviour/unit.lua +270 -6
  54. package/engine/buff.d.ts +114 -58
  55. package/engine/buff.lua +567 -303
  56. package/engine/index.d.ts +2 -1
  57. package/engine/internal/ability.d.ts +14 -1
  58. package/engine/internal/ability.lua +113 -44
  59. package/engine/internal/item/ability.lua +63 -11
  60. package/engine/internal/item/fields.d.ts +12 -0
  61. package/engine/internal/item/fields.lua +33 -0
  62. package/engine/internal/item/owner-cache.d.ts +5 -0
  63. package/engine/internal/item/owner-cache.lua +4 -0
  64. package/engine/internal/item+owner.d.ts +2 -0
  65. package/engine/internal/item+owner.lua +37 -8
  66. package/engine/internal/item.d.ts +32 -16
  67. package/engine/internal/item.lua +257 -82
  68. package/engine/internal/mechanics/ability-duration.lua +1 -1
  69. package/engine/internal/mechanics/cast-ability.lua +6 -3
  70. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  71. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  72. package/engine/internal/misc/frame-coordinates.lua +21 -0
  73. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  74. package/engine/internal/misc/get-terrain-z.lua +11 -0
  75. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  76. package/engine/internal/misc/player-local-handle.lua +5 -0
  77. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  78. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  79. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  80. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  81. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  82. package/engine/internal/object-data/health-bonus.lua +16 -0
  83. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  84. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  85. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  86. package/engine/internal/object-data/mana-bonus.lua +16 -0
  87. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  88. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  89. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  90. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  91. package/engine/internal/unit/ability.d.ts +35 -0
  92. package/engine/internal/unit/ability.lua +114 -9
  93. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  94. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  95. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  96. package/engine/internal/unit/allowed-targets.lua +9 -1
  97. package/engine/internal/unit/appearance.d.ts +15 -0
  98. package/engine/internal/unit/appearance.lua +85 -0
  99. package/engine/internal/unit/attributes.d.ts +17 -0
  100. package/engine/internal/unit/attributes.lua +46 -0
  101. package/engine/internal/unit/bonus.d.ts +17 -0
  102. package/engine/internal/unit/bonus.lua +113 -8
  103. package/engine/internal/unit/buff.d.ts +2 -2
  104. package/engine/internal/unit/buff.lua +34 -19
  105. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  106. package/engine/internal/unit/equipment-inventory.lua +233 -0
  107. package/engine/internal/unit/expiration-timer.lua +1 -1
  108. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  109. package/engine/internal/unit/extended-inventory.lua +99 -0
  110. package/engine/internal/unit/fly-height.d.ts +7 -0
  111. package/engine/internal/unit/fly-height.lua +20 -0
  112. package/engine/internal/unit/ignore-events-items.lua +10 -1
  113. package/engine/internal/unit/interrupts.d.ts +12 -0
  114. package/engine/internal/unit/interrupts.lua +28 -0
  115. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  116. package/engine/internal/unit/inventory.lua +87 -0
  117. package/engine/internal/unit/item-container.d.ts +25 -0
  118. package/engine/internal/unit/item-container.lua +11 -0
  119. package/engine/internal/unit/item-order-events.d.ts +17 -0
  120. package/engine/internal/unit/item-order-events.lua +67 -0
  121. package/engine/internal/unit/item-slot.d.ts +27 -0
  122. package/engine/internal/unit/item-slot.lua +92 -0
  123. package/engine/internal/unit/main-selected.lua +12 -27
  124. package/engine/internal/unit/order.d.ts +20 -0
  125. package/engine/internal/unit/order.lua +136 -0
  126. package/engine/internal/unit/range-event.d.ts +12 -0
  127. package/engine/internal/unit/range-event.lua +90 -0
  128. package/engine/internal/unit/scale.d.ts +7 -0
  129. package/engine/internal/unit/scale.lua +20 -0
  130. package/engine/internal/unit+ability.d.ts +2 -1
  131. package/engine/internal/unit+ability.lua +83 -3
  132. package/engine/internal/unit+bonus.lua +3 -3
  133. package/engine/internal/unit+damage.d.ts +11 -11
  134. package/engine/internal/unit+damage.lua +43 -14
  135. package/engine/internal/unit+rally.lua +9 -31
  136. package/engine/internal/unit+spellSteal.lua +1 -2
  137. package/engine/internal/unit-missile-data.lua +58 -32
  138. package/engine/internal/unit-missile-launch.lua +65 -27
  139. package/engine/internal/unit.d.ts +41 -36
  140. package/engine/internal/unit.lua +398 -327
  141. package/engine/local-client.d.ts +28 -0
  142. package/engine/local-client.lua +324 -54
  143. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  144. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  145. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  146. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  147. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  148. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  149. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  150. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  151. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  152. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  153. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  154. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  155. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  156. package/engine/object-data/auxiliary/item-class.lua +2 -0
  157. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  158. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  159. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  160. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  161. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  162. package/engine/object-data/auxiliary/order-type.lua +2 -0
  163. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  164. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  165. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  166. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  167. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  168. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  169. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  170. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  171. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  172. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  173. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  174. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  175. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  176. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  177. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  178. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  179. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  180. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  181. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  182. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  183. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  184. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  185. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  186. package/engine/object-data/entry/ability-type/blank-configurable.lua +2 -2
  187. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  188. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  189. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  190. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  191. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  192. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  193. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  194. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  195. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  196. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  197. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  198. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  199. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  200. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  201. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  202. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  203. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  204. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  205. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  206. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  207. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  208. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  209. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  210. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  211. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  212. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  213. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  214. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  215. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  216. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  217. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  218. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  219. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  220. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  221. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  222. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  223. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  224. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  225. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  226. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  227. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  228. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  229. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  230. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  231. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  232. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  233. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  234. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  235. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  236. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  237. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  238. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  239. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  240. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  241. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  242. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  243. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  244. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  245. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  246. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  247. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  248. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  249. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  250. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  251. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  252. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  253. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  254. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  255. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  256. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  257. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  258. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  259. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  260. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  261. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  262. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  263. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  264. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  265. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  266. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  267. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  268. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  269. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  270. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  271. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  272. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  273. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  274. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  275. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  276. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  277. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  278. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  279. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  280. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  281. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  282. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  283. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  284. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  285. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  286. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  287. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  288. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  289. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  290. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  291. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  292. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  293. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  294. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  295. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  296. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  297. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  298. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  299. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  300. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  301. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  302. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  303. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  304. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  305. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  306. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  307. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  308. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  309. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  310. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  311. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  312. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  313. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  314. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  315. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  316. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  317. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  318. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  319. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  320. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  321. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  322. package/engine/object-data/entry/ability-type/web.lua +52 -0
  323. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  324. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  325. package/engine/object-data/entry/ability-type.d.ts +43 -16
  326. package/engine/object-data/entry/ability-type.lua +334 -24
  327. package/engine/object-data/entry/buff-type/applicable.lua +122 -106
  328. package/engine/object-data/entry/buff-type.d.ts +10 -12
  329. package/engine/object-data/entry/buff-type.lua +37 -27
  330. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  331. package/engine/object-data/entry/destructible-type.lua +181 -0
  332. package/engine/object-data/entry/item-type.d.ts +18 -3
  333. package/engine/object-data/entry/item-type.lua +84 -0
  334. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  335. package/engine/object-data/entry/lightning-type.lua +1 -1
  336. package/engine/object-data/entry/sound-preset.d.ts +19 -2
  337. package/engine/object-data/entry/sound-preset.lua +104 -0
  338. package/engine/object-data/entry/unit-type.d.ts +74 -6
  339. package/engine/object-data/entry/unit-type.lua +560 -100
  340. package/engine/object-data/entry/upgrade.d.ts +2 -2
  341. package/engine/object-data/entry.d.ts +6 -1
  342. package/engine/object-data/entry.lua +8 -0
  343. package/engine/object-field/ability.d.ts +4 -4
  344. package/engine/object-field/ability.lua +9 -8
  345. package/engine/object-field/item.d.ts +22 -0
  346. package/engine/object-field/item.lua +118 -0
  347. package/engine/object-field/unit.d.ts +72 -3
  348. package/engine/object-field/unit.lua +268 -7
  349. package/engine/object-field.d.ts +26 -7
  350. package/engine/object-field.lua +360 -119
  351. package/engine/random.d.ts +10 -0
  352. package/engine/random.lua +21 -0
  353. package/engine/standard/entries/ability-type.d.ts +3102 -7
  354. package/engine/standard/entries/ability-type.lua +0 -6
  355. package/engine/standard/entries/buff-type.d.ts +48 -0
  356. package/engine/standard/entries/buff-type.lua +46 -0
  357. package/engine/standard/entries/item-type.d.ts +1299 -0
  358. package/engine/standard/entries/item-type.lua +2 -0
  359. package/engine/standard/entries/lightning-type.d.ts +42 -15
  360. package/engine/standard/entries/lightning-type.lua +0 -14
  361. package/engine/standard/entries/unit-type.d.ts +5 -0
  362. package/engine/standard/entries/unit-type.lua +5 -0
  363. package/engine/standard/fields/ability.d.ts +4 -4
  364. package/engine/standard/fields/ability.lua +4 -4
  365. package/engine/standard/fields/item.d.ts +4 -0
  366. package/engine/standard/fields/item.lua +6 -0
  367. package/engine/standard/fields/unit.d.ts +12 -0
  368. package/engine/standard/fields/unit.lua +20 -0
  369. package/engine/synchronization.d.ts +11 -0
  370. package/engine/synchronization.lua +77 -0
  371. package/engine/text-tag.d.ts +36 -2
  372. package/engine/text-tag.lua +250 -10
  373. package/engine/unit.d.ts +11 -1
  374. package/engine/unit.lua +11 -1
  375. package/event.d.ts +1 -1
  376. package/lualib_bundle.lua +1 -1
  377. package/math.d.ts +2 -0
  378. package/math.lua +14 -0
  379. package/net/socket.lua +1 -1
  380. package/network.lua +25 -1
  381. package/objutil/buff.lua +12 -11
  382. package/objutil/object.lua +1 -1
  383. package/operation.d.ts +8 -1
  384. package/operation.lua +38 -18
  385. package/package.json +3 -23
  386. package/patch-lua.lua +15 -0
  387. package/patch-lualib.lua +1 -1
  388. package/utility/arrays.d.ts +9 -1
  389. package/utility/arrays.lua +28 -0
  390. package/utility/callback-array.d.ts +17 -0
  391. package/utility/callback-array.lua +61 -0
  392. package/utility/functions.d.ts +8 -0
  393. package/utility/functions.lua +13 -0
  394. package/utility/linked-map.d.ts +35 -0
  395. package/utility/linked-map.lua +107 -0
  396. package/utility/linked-set.d.ts +5 -1
  397. package/utility/linked-set.lua +49 -1
  398. package/utility/lua-maps.d.ts +15 -2
  399. package/utility/lua-maps.lua +53 -2
  400. package/utility/lua-sets.d.ts +2 -0
  401. package/utility/lua-sets.lua +7 -0
  402. package/utility/random.d.ts +102 -0
  403. package/utility/random.lua +273 -0
  404. package/utility/records.lua +20 -1
  405. package/utility/types.d.ts +3 -0
  406. package/utility/unordered-map.d.ts +27 -0
  407. package/utility/unordered-map.lua +99 -0
  408. package/core/types/order.d.ts +0 -25
  409. package/core/types/order.lua +0 -55
  410. package/engine/internal/unit/item.lua +0 -78
  411. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  412. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  413. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  414. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -3,6 +3,7 @@ local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
6
7
  local ____exports = {}
7
8
  local ____unit = require("engine.internal.unit")
8
9
  local Unit = ____unit.Unit
@@ -18,9 +19,11 @@ local array = ____arrays.array
18
19
  local map = ____arrays.map
19
20
  local mapIndexed = ____arrays.mapIndexed
20
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
22
+ local attachmentPointToNodeFQN = ____attachment_2Dpreset.attachmentPointToNodeFQN
21
23
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
22
24
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
23
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
25
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
26
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
24
27
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
25
28
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
26
29
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -35,13 +38,22 @@ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilit
35
38
  local ____upgrade = require("engine.object-data.entry.upgrade")
36
39
  local Upgrade = ____upgrade.Upgrade
37
40
  local ____sound = require("core.types.sound")
41
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
38
42
  local Sound3D = ____sound.Sound3D
39
- local SoundPreset = ____sound.SoundPreset
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
40
48
  local castAnimationFQNByAbilityTypeId = {}
41
49
  local isButtonVisibleFalseAbilityTypes = {}
42
50
  local casterCastingEffectPresetsByAbilityTypeId = {}
43
51
  local casterChannelingEffectPresetsByAbilityTypeId = {}
44
52
  local targetCastingEffectPresetsByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
55
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
56
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
45
57
  local targetEffectSoundPresetByAbilityTypeId = {}
46
58
  ____exports.AbilityType = __TS__Class()
47
59
  local AbilityType = ____exports.AbilityType
@@ -118,7 +130,7 @@ __TS__SetDescriptor(
118
130
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
119
131
  end,
120
132
  set = function(self, casterCastingEffectPresets)
121
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
133
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
122
134
  end
123
135
  },
124
136
  true
@@ -131,20 +143,20 @@ __TS__SetDescriptor(
131
143
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
132
144
  end,
133
145
  set = function(self, casterChannelingEffectPresets)
134
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
146
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
135
147
  end
136
148
  },
137
149
  true
138
150
  )
139
151
  __TS__SetDescriptor(
140
152
  AbilityType.prototype,
141
- "casterAttachmentPresets",
153
+ "casterEffectPresets",
142
154
  {
143
155
  get = function(self)
144
156
  return self:getAttachmentPresetListField("acat", {"acap", "aca1"})
145
157
  end,
146
- set = function(self, casterAttachmentPresets)
147
- self:setAttachmentPresetListField("acat", {"acap", "aca1"}, "acac", casterAttachmentPresets)
158
+ set = function(self, casterEffectPresets)
159
+ self:setAttachmentPresetListField("acat", {"acap", "aca1"}, "acac", casterEffectPresets)
148
160
  end
149
161
  },
150
162
  true
@@ -162,6 +174,45 @@ __TS__SetDescriptor(
162
174
  },
163
175
  true
164
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
+ )
165
216
  __TS__SetDescriptor(
166
217
  AbilityType.prototype,
167
218
  "iconPath",
@@ -201,6 +252,19 @@ __TS__SetDescriptor(
201
252
  },
202
253
  true
203
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
+ )
204
268
  __TS__SetDescriptor(
205
269
  AbilityType.prototype,
206
270
  "isButtonVisible",
@@ -323,6 +387,19 @@ __TS__SetDescriptor(
323
387
  },
324
388
  true
325
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
+ )
326
403
  __TS__SetDescriptor(
327
404
  AbilityType.prototype,
328
405
  "missileMovementArc",
@@ -351,13 +428,30 @@ __TS__SetDescriptor(
351
428
  )
352
429
  __TS__SetDescriptor(
353
430
  AbilityType.prototype,
354
- "specialAttachmentPreset",
431
+ "specialEffectModelPaths",
355
432
  {
356
433
  get = function(self)
357
- return self:getAttachmentPresetField("asat", "aspt")
434
+ return self:getStringsField("asat")
358
435
  end,
359
- set = function(self, specialAttachmentPreset)
360
- 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
+ )
361
455
  end
362
456
  },
363
457
  true
@@ -370,7 +464,59 @@ __TS__SetDescriptor(
370
464
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
371
465
  end,
372
466
  set = function(self, targetCastingEffectPresets)
373
- 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)
374
520
  end
375
521
  },
376
522
  true
@@ -456,6 +602,33 @@ __TS__SetDescriptor(
456
602
  },
457
603
  true
458
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
+ )
459
632
  __TS__SetDescriptor(
460
633
  AbilityType.prototype,
461
634
  "turnOffButtonPositionX",
@@ -888,6 +1061,19 @@ __TS__SetDescriptor(
888
1061
  },
889
1062
  true
890
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
+ )
891
1077
  __TS__SetDescriptor(
892
1078
  AbilityType.prototype,
893
1079
  "learnLevelMinimum",
@@ -978,9 +1164,7 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
978
1164
  4,
979
1165
  function(caster, ability)
980
1166
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
981
- Timer:run(function()
982
- caster:playAnimation(animationFQN)
983
- end)
1167
+ Timer:run(caster, "playAnimation", animationFQN)
984
1168
  end
985
1169
  end
986
1170
  )
@@ -991,20 +1175,27 @@ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEf
991
1175
  4,
992
1176
  function(caster, ability, target)
993
1177
  if __TS__InstanceOf(target, Unit) then
994
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, target)
1178
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
995
1179
  else
996
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, target.x, target.y)
1180
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
997
1181
  end
998
1182
  end
999
1183
  )
1000
1184
  Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1001
1185
  4,
1002
1186
  function(caster, ability, x, y)
1003
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, x, y)
1187
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1004
1188
  end
1005
1189
  )
1006
1190
  end
1007
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)
1008
1199
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
1009
1200
  return mapValues(
1010
1201
  casterCastingEffectPresetsByAbilityTypeId,
@@ -1017,10 +1208,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
1017
1208
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1018
1209
  )
1019
1210
  end)
1211
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1212
+ return mapValues(
1213
+ casterCastingEffectPresetsByAbilityTypeId,
1214
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1215
+ )
1216
+ end)
1020
1217
  local casterCastingEffectsByCaster = {}
1021
1218
  local function handleAbilityCastingStartEvent(caster, ability)
1022
1219
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
1023
1220
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1221
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
1024
1222
  local effects = {}
1025
1223
  if effectModelPaths ~= nil then
1026
1224
  for i = 1, #effectModelPaths do
@@ -1029,7 +1227,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
1029
1227
  if attachmentPoint == nil or attachmentPoint == "" then
1030
1228
  attachmentPoint = "origin"
1031
1229
  end
1032
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1230
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1033
1231
  end
1034
1232
  end
1035
1233
  casterCastingEffectsByCaster[caster] = effects
@@ -1060,10 +1258,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1060
1258
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1061
1259
  )
1062
1260
  end)
1261
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1262
+ return mapValues(
1263
+ casterChannelingEffectPresetsByAbilityTypeId,
1264
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1265
+ )
1266
+ end)
1063
1267
  local casterChannelingEffectsByCaster = {}
1064
1268
  local function handleAbilityChannelingStartEvent(caster, ability)
1065
1269
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1066
1270
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1271
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1067
1272
  local effects = {}
1068
1273
  if effectModelPaths ~= nil then
1069
1274
  for i = 1, #effectModelPaths do
@@ -1072,23 +1277,128 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1072
1277
  if attachmentPoint == nil or attachmentPoint == "" then
1073
1278
  attachmentPoint = "origin"
1074
1279
  end
1075
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1280
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1076
1281
  end
1077
1282
  end
1078
1283
  casterChannelingEffectsByCaster[caster] = effects
1079
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
1080
1377
  local function handleAbilityStopChannelingEvent(caster)
1081
- local effects = casterChannelingEffectsByCaster[caster]
1082
- if effects ~= nil then
1083
- for i = 1, #effects do
1084
- effects[i]:destroy()
1378
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1379
+ if casterEffects ~= nil then
1380
+ for i = 1, #casterEffects do
1381
+ casterEffects[i]:destroy()
1085
1382
  end
1086
1383
  casterChannelingEffectsByCaster[caster] = nil
1087
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
1088
1392
  end
1089
1393
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1090
1394
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1091
1395
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1092
1396
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1093
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
1094
1404
  return ____exports