warscript 0.0.1-dev.d750e38 → 0.0.1-dev.d77b529

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 (413) 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 +1 -0
  9. package/core/types/frame.lua +136 -58
  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/player.d.ts +18 -1
  14. package/core/types/player.lua +76 -26
  15. package/core/types/playerCamera.d.ts +2 -0
  16. package/core/types/playerCamera.lua +123 -5
  17. package/core/types/playerColor.lua +4 -3
  18. package/core/types/sound.d.ts +18 -25
  19. package/core/types/sound.lua +113 -33
  20. package/core/types/tileCell.d.ts +11 -1
  21. package/core/types/tileCell.lua +97 -0
  22. package/core/types/timer.d.ts +9 -8
  23. package/core/types/timer.lua +45 -23
  24. package/core/types/unit.d.ts +5 -0
  25. package/core/types/unit.lua +5 -0
  26. package/core/util.d.ts +3 -1
  27. package/core/util.lua +115 -4
  28. package/decl/native.d.ts +1718 -964
  29. package/destroyable.d.ts +1 -0
  30. package/destroyable.lua +9 -0
  31. package/engine/behavior.d.ts +14 -1
  32. package/engine/behavior.lua +230 -70
  33. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  34. package/engine/behaviour/ability/apply-buff.lua +36 -4
  35. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  36. package/engine/behaviour/ability/damage.d.ts +13 -3
  37. package/engine/behaviour/ability/damage.lua +41 -49
  38. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  39. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  40. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  41. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  42. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  43. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  44. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  45. package/engine/behaviour/ability/restore-mana.lua +6 -6
  46. package/engine/behaviour/ability.d.ts +17 -5
  47. package/engine/behaviour/ability.lua +97 -24
  48. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  49. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  50. package/engine/behaviour/unit.d.ts +41 -2
  51. package/engine/behaviour/unit.lua +270 -6
  52. package/engine/buff.d.ts +121 -59
  53. package/engine/buff.lua +605 -301
  54. package/engine/index.d.ts +2 -1
  55. package/engine/internal/ability.d.ts +11 -1
  56. package/engine/internal/ability.lua +104 -44
  57. package/engine/internal/item/ability.lua +63 -11
  58. package/engine/internal/item/fields.d.ts +12 -0
  59. package/engine/internal/item/fields.lua +33 -0
  60. package/engine/internal/item/owner-cache.d.ts +5 -0
  61. package/engine/internal/item/owner-cache.lua +4 -0
  62. package/engine/internal/item+owner.d.ts +2 -0
  63. package/engine/internal/item+owner.lua +37 -8
  64. package/engine/internal/item.d.ts +34 -18
  65. package/engine/internal/item.lua +308 -102
  66. package/engine/internal/mechanics/ability-duration.lua +1 -1
  67. package/engine/internal/mechanics/cast-ability.lua +6 -3
  68. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  69. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  70. package/engine/internal/misc/frame-coordinates.lua +21 -0
  71. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  72. package/engine/internal/misc/get-terrain-z.lua +11 -0
  73. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  74. package/engine/internal/misc/player-local-handle.lua +5 -0
  75. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  76. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  77. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  78. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  79. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  80. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  81. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  82. package/engine/internal/object-data/evasion-probability.lua +16 -0
  83. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  84. package/engine/internal/object-data/health-bonus.lua +16 -0
  85. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  86. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  87. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  88. package/engine/internal/object-data/mana-bonus.lua +16 -0
  89. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  90. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  91. package/engine/internal/unit/ability.d.ts +35 -0
  92. package/engine/internal/unit/ability.lua +113 -12
  93. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  94. package/engine/internal/unit/add-item-to-slot.lua +57 -14
  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 +16 -0
  102. package/engine/internal/unit/bonus.lua +119 -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/pseudo-passive-abilities.d.ts +2 -0
  127. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  128. package/engine/internal/unit/range-event.d.ts +12 -0
  129. package/engine/internal/unit/range-event.lua +90 -0
  130. package/engine/internal/unit/scale.d.ts +7 -0
  131. package/engine/internal/unit/scale.lua +20 -0
  132. package/engine/internal/unit+ability.d.ts +2 -1
  133. package/engine/internal/unit+ability.lua +73 -3
  134. package/engine/internal/unit+bonus.lua +3 -3
  135. package/engine/internal/unit+damage.d.ts +11 -11
  136. package/engine/internal/unit+damage.lua +43 -14
  137. package/engine/internal/unit+rally.lua +9 -31
  138. package/engine/internal/unit+spellSteal.lua +1 -2
  139. package/engine/internal/unit-missile-data.lua +58 -32
  140. package/engine/internal/unit-missile-launch.lua +65 -27
  141. package/engine/internal/unit.d.ts +43 -33
  142. package/engine/internal/unit.lua +391 -323
  143. package/engine/lightning.d.ts +4 -3
  144. package/engine/lightning.lua +22 -15
  145. package/engine/local-client.d.ts +28 -0
  146. package/engine/local-client.lua +324 -54
  147. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  148. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  149. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  150. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  151. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  152. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  153. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  154. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  155. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  156. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  157. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  158. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  159. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  160. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  161. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  162. package/engine/object-data/auxiliary/item-class.lua +2 -0
  163. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  164. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  165. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  166. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  167. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  168. package/engine/object-data/auxiliary/order-type.lua +2 -0
  169. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  170. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  171. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  172. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  173. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  174. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  175. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  176. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  177. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  178. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  179. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  180. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  181. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  182. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  183. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  184. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  185. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  186. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  187. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  188. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  189. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  190. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  191. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  192. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  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/cleansing-fire.d.ts +27 -0
  196. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  197. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  198. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  199. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  200. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  201. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  202. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  203. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  204. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  205. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  206. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  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/feral-spirit.lua +2 -2
  216. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  217. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  218. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  219. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  220. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  221. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  222. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  223. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  224. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  225. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  226. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  227. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  228. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  229. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  230. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  232. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  233. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  234. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  235. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  236. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  237. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  238. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  239. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  240. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  241. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  242. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  243. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  244. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  245. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  246. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  247. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  248. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  249. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  250. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  251. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  252. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  253. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  254. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  255. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  256. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  257. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  258. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  259. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  260. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  261. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  262. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  263. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  264. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  265. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  266. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  267. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  268. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  269. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  270. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  271. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  272. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  273. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  274. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  275. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  276. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  277. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  278. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  279. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  280. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  281. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  282. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  283. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  284. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  285. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  286. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  287. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  288. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  289. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  290. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  291. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  292. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  293. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  294. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  295. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  296. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  297. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  298. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  299. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  300. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  301. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  302. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  303. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  304. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  305. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  306. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  307. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  308. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  309. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  310. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  311. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  312. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  313. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  314. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  315. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  316. package/engine/object-data/entry/ability-type/web.lua +52 -0
  317. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  318. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  319. package/engine/object-data/entry/ability-type.d.ts +36 -19
  320. package/engine/object-data/entry/ability-type.lua +307 -29
  321. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  322. package/engine/object-data/entry/buff-type.d.ts +10 -12
  323. package/engine/object-data/entry/buff-type.lua +39 -29
  324. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  325. package/engine/object-data/entry/destructible-type.lua +181 -0
  326. package/engine/object-data/entry/item-type.d.ts +18 -3
  327. package/engine/object-data/entry/item-type.lua +88 -4
  328. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  329. package/engine/object-data/entry/lightning-type.lua +1 -1
  330. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  331. package/engine/object-data/entry/sound-preset.lua +140 -0
  332. package/engine/object-data/entry/unit-type.d.ts +71 -6
  333. package/engine/object-data/entry/unit-type.lua +592 -93
  334. package/engine/object-data/entry/upgrade.d.ts +2 -2
  335. package/engine/object-data/entry/upgrade.lua +4 -4
  336. package/engine/object-data/entry.d.ts +21 -14
  337. package/engine/object-data/entry.lua +68 -32
  338. package/engine/object-field/ability.d.ts +4 -4
  339. package/engine/object-field/ability.lua +9 -8
  340. package/engine/object-field/item.d.ts +22 -0
  341. package/engine/object-field/item.lua +118 -0
  342. package/engine/object-field/unit.d.ts +72 -3
  343. package/engine/object-field/unit.lua +268 -7
  344. package/engine/object-field.d.ts +26 -7
  345. package/engine/object-field.lua +360 -119
  346. package/engine/random.d.ts +10 -0
  347. package/engine/random.lua +21 -0
  348. package/engine/standard/entries/ability-type.d.ts +3102 -7
  349. package/engine/standard/entries/ability-type.lua +0 -6
  350. package/engine/standard/entries/buff-type.d.ts +3 -0
  351. package/engine/standard/entries/buff-type.lua +3 -0
  352. package/engine/standard/entries/item-type.d.ts +1299 -0
  353. package/engine/standard/entries/item-type.lua +2 -0
  354. package/engine/standard/entries/lightning-type.d.ts +42 -15
  355. package/engine/standard/entries/lightning-type.lua +0 -14
  356. package/engine/standard/entries/sound-preset.d.ts +10 -0
  357. package/engine/standard/entries/sound-preset.lua +10 -0
  358. package/engine/standard/entries/unit-type.d.ts +5 -0
  359. package/engine/standard/entries/unit-type.lua +5 -0
  360. package/engine/standard/fields/ability.d.ts +2 -2
  361. package/engine/standard/fields/ability.lua +2 -2
  362. package/engine/standard/fields/item.d.ts +4 -0
  363. package/engine/standard/fields/item.lua +6 -0
  364. package/engine/standard/fields/unit.d.ts +12 -0
  365. package/engine/standard/fields/unit.lua +20 -0
  366. package/engine/synchronization.d.ts +11 -0
  367. package/engine/synchronization.lua +77 -0
  368. package/engine/text-tag.d.ts +36 -2
  369. package/engine/text-tag.lua +250 -10
  370. package/engine/unit.d.ts +11 -1
  371. package/engine/unit.lua +11 -1
  372. package/event.d.ts +1 -1
  373. package/lualib_bundle.lua +1 -1
  374. package/math.d.ts +2 -0
  375. package/math.lua +14 -0
  376. package/net/socket.lua +1 -1
  377. package/network.lua +25 -1
  378. package/objutil/buff.lua +12 -11
  379. package/objutil/object.lua +1 -1
  380. package/objutil/unit.lua +8 -0
  381. package/operation.d.ts +8 -1
  382. package/operation.lua +38 -18
  383. package/package.json +3 -23
  384. package/patch-lua.lua +15 -0
  385. package/patch-lualib.lua +1 -1
  386. package/utility/arrays.d.ts +2 -0
  387. package/utility/arrays.lua +11 -0
  388. package/utility/callback-array.d.ts +17 -0
  389. package/utility/callback-array.lua +61 -0
  390. package/utility/functions.d.ts +8 -0
  391. package/utility/functions.lua +13 -0
  392. package/utility/linked-map.d.ts +35 -0
  393. package/utility/linked-map.lua +107 -0
  394. package/utility/linked-set.d.ts +5 -1
  395. package/utility/linked-set.lua +49 -1
  396. package/utility/lua-maps.d.ts +15 -2
  397. package/utility/lua-maps.lua +53 -2
  398. package/utility/lua-sets.d.ts +2 -0
  399. package/utility/lua-sets.lua +7 -0
  400. package/utility/random.d.ts +102 -0
  401. package/utility/random.lua +273 -0
  402. package/utility/records.lua +20 -1
  403. package/utility/reflection.lua +11 -7
  404. package/utility/types.d.ts +3 -0
  405. package/utility/unordered-map.d.ts +27 -0
  406. package/utility/unordered-map.lua +99 -0
  407. package/core/types/order.d.ts +0 -25
  408. package/core/types/order.lua +0 -55
  409. package/engine/internal/unit/item.lua +0 -78
  410. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  411. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  412. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  413. /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
@@ -19,7 +21,7 @@ local mapIndexed = ____arrays.mapIndexed
19
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
20
22
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
21
23
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
22
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
24
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
23
25
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
24
26
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
25
27
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -33,11 +35,24 @@ local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.u
33
35
  local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
34
36
  local ____upgrade = require("engine.object-data.entry.upgrade")
35
37
  local Upgrade = ____upgrade.Upgrade
38
+ local ____sound = require("core.types.sound")
39
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
40
+ local Sound3D = ____sound.Sound3D
41
+ local SoundSettings = ____sound.SoundSettings
42
+ local ____lua_2Dsets = require("utility.lua-sets")
43
+ local luaSetOf = ____lua_2Dsets.luaSetOf
44
+ local ____local_2Dclient = require("engine.local-client")
45
+ local LocalClient = ____local_2Dclient.LocalClient
36
46
  local castAnimationFQNByAbilityTypeId = {}
37
47
  local isButtonVisibleFalseAbilityTypes = {}
38
48
  local casterCastingEffectPresetsByAbilityTypeId = {}
39
49
  local casterChannelingEffectPresetsByAbilityTypeId = {}
40
50
  local targetCastingEffectPresetsByAbilityTypeId = {}
51
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
52
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
55
+ local targetEffectSoundPresetByAbilityTypeId = {}
41
56
  ____exports.AbilityType = __TS__Class()
42
57
  local AbilityType = ____exports.AbilityType
43
58
  AbilityType.name = "AbilityType"
@@ -113,7 +128,7 @@ __TS__SetDescriptor(
113
128
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
114
129
  end,
115
130
  set = function(self, casterCastingEffectPresets)
116
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
131
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
117
132
  end
118
133
  },
119
134
  true
@@ -126,7 +141,7 @@ __TS__SetDescriptor(
126
141
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
127
142
  end,
128
143
  set = function(self, casterChannelingEffectPresets)
129
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
144
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
130
145
  end
131
146
  },
132
147
  true
@@ -196,6 +211,19 @@ __TS__SetDescriptor(
196
211
  },
197
212
  true
198
213
  )
214
+ __TS__SetDescriptor(
215
+ AbilityType.prototype,
216
+ "iconPathDE",
217
+ {
218
+ get = function(self)
219
+ return self:getStringField("aart:de")
220
+ end,
221
+ set = function(self, iconPathDE)
222
+ self:setStringField("aart:de", iconPathDE)
223
+ end
224
+ },
225
+ true
226
+ )
199
227
  __TS__SetDescriptor(
200
228
  AbilityType.prototype,
201
229
  "isButtonVisible",
@@ -271,10 +299,10 @@ __TS__SetDescriptor(
271
299
  "lightningTypeIds",
272
300
  {
273
301
  get = function(self)
274
- return self:getObjectDataEntryIdsField("alig")
302
+ return self:getObjectDataEntryNumericIdsField("alig")
275
303
  end,
276
304
  set = function(self, lightningTypeIds)
277
- self:setObjectDataEntryIdsField("alig", lightningTypeIds)
305
+ self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
278
306
  end
279
307
  },
280
308
  true
@@ -318,6 +346,19 @@ __TS__SetDescriptor(
318
346
  },
319
347
  true
320
348
  )
349
+ __TS__SetDescriptor(
350
+ AbilityType.prototype,
351
+ "missileModelPathDE",
352
+ {
353
+ get = function(self)
354
+ return self:getStringField("amat:de")
355
+ end,
356
+ set = function(self, missileModelPathDE)
357
+ self:setStringField("amat:de", missileModelPathDE)
358
+ end
359
+ },
360
+ true
361
+ )
321
362
  __TS__SetDescriptor(
322
363
  AbilityType.prototype,
323
364
  "missileMovementArc",
@@ -365,7 +406,59 @@ __TS__SetDescriptor(
365
406
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
366
407
  end,
367
408
  set = function(self, targetCastingEffectPresets)
368
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
409
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
410
+ end
411
+ },
412
+ true
413
+ )
414
+ __TS__SetDescriptor(
415
+ AbilityType.prototype,
416
+ "targetChannelingEffectPresets",
417
+ {
418
+ get = function(self)
419
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
420
+ end,
421
+ set = function(self, targetChannelingEffectPresets)
422
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
423
+ end
424
+ },
425
+ true
426
+ )
427
+ __TS__SetDescriptor(
428
+ AbilityType.prototype,
429
+ "targetChannelingEffectPresetsSD",
430
+ {
431
+ get = function(self)
432
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
433
+ end,
434
+ set = function(self, targetChannelingEffectPresetsSD)
435
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
436
+ end
437
+ },
438
+ true
439
+ )
440
+ __TS__SetDescriptor(
441
+ AbilityType.prototype,
442
+ "targetChannelingEffectPresetsHD",
443
+ {
444
+ get = function(self)
445
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
446
+ end,
447
+ set = function(self, targetChannelingEffectPresetsHD)
448
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
449
+ end
450
+ },
451
+ true
452
+ )
453
+ __TS__SetDescriptor(
454
+ AbilityType.prototype,
455
+ "targetChannelingEffectPresetsDE",
456
+ {
457
+ get = function(self)
458
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
459
+ end,
460
+ set = function(self, targetChannelingEffectPresetsDE)
461
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
369
462
  end
370
463
  },
371
464
  true
@@ -451,6 +544,33 @@ __TS__SetDescriptor(
451
544
  },
452
545
  true
453
546
  )
547
+ __TS__SetDescriptor(
548
+ AbilityType.prototype,
549
+ "targetEffectPresetsDE",
550
+ {
551
+ get = function(self)
552
+ return self:getAttachmentPresetListField(
553
+ "atat:de",
554
+ array(
555
+ 6,
556
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
557
+ )
558
+ )
559
+ end,
560
+ set = function(self, targetEffectPresetsDE)
561
+ self:setAttachmentPresetListField(
562
+ "atat:de",
563
+ array(
564
+ 6,
565
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
566
+ ),
567
+ "atac:de",
568
+ targetEffectPresetsDE
569
+ )
570
+ end
571
+ },
572
+ true
573
+ )
454
574
  __TS__SetDescriptor(
455
575
  AbilityType.prototype,
456
576
  "turnOffButtonPositionX",
@@ -508,7 +628,7 @@ __TS__SetDescriptor(
508
628
  "techTreeDependencies",
509
629
  {
510
630
  get = function(self)
511
- local techTreeDependencyIds = self:getObjectDataEntryIdsField("areq")
631
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
512
632
  local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
513
633
  return mapIndexed(
514
634
  techTreeDependencyIds,
@@ -528,7 +648,7 @@ __TS__SetDescriptor(
528
648
  map(techTreeDependencies, extractTechTreeDependencyInputLevel),
529
649
  function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
530
650
  )
531
- self:setObjectDataEntryIdsField("areq", techTreeDependencyIds)
651
+ self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
532
652
  self:setNumbersField("arqa", techTreeDependencyInternalLevels)
533
653
  end
534
654
  },
@@ -718,26 +838,40 @@ __TS__SetDescriptor(
718
838
  )
719
839
  __TS__SetDescriptor(
720
840
  AbilityType.prototype,
721
- "soundPresetName",
841
+ "casterEffectSoundPresetId",
722
842
  {
723
843
  get = function(self)
724
- return self:getStringField("aefs")
844
+ local casterEffectSoundPresetId = self:getStringField("aefs")
845
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
725
846
  end,
726
- set = function(self, soundPresetName)
727
- self:setStringField("aefs", soundPresetName)
847
+ set = function(self, casterEffectSoundPresetId)
848
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
728
849
  end
729
850
  },
730
851
  true
731
852
  )
732
853
  __TS__SetDescriptor(
733
854
  AbilityType.prototype,
734
- "loopingSoundPresetName",
855
+ "casterEffectLoopingSoundPresetId",
735
856
  {
736
857
  get = function(self)
737
858
  return self:getStringField("aefl")
738
859
  end,
739
- set = function(self, loopingSoundPresetName)
740
- self:setStringField("aefl", loopingSoundPresetName)
860
+ set = function(self, casterEffectLoopingSoundPresetId)
861
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
862
+ end
863
+ },
864
+ true
865
+ )
866
+ __TS__SetDescriptor(
867
+ AbilityType.prototype,
868
+ "targetEffectSoundPresetId",
869
+ {
870
+ get = function(self)
871
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
872
+ end,
873
+ set = function(self, targetEffectSoundPresetId)
874
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
741
875
  end
742
876
  },
743
877
  true
@@ -796,10 +930,10 @@ __TS__SetDescriptor(
796
930
  "buffTypeIds",
797
931
  {
798
932
  get = function(self)
799
- return self:getObjectDataEntryIdsLevelField("abuf")
933
+ return self:getObjectDataEntryNumericIdsLevelField("abuf")
800
934
  end,
801
935
  set = function(self, buffTypeIds)
802
- self:setObjectDataEntryIdsLevelField("abuf", buffTypeIds)
936
+ self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
803
937
  end
804
938
  },
805
939
  true
@@ -848,10 +982,10 @@ __TS__SetDescriptor(
848
982
  "effectBuffTypeIds",
849
983
  {
850
984
  get = function(self)
851
- return self:getObjectDataEntryIdsLevelField("aeff")
985
+ return self:getObjectDataEntryNumericIdsLevelField("aeff")
852
986
  end,
853
987
  set = function(self, effectBuffTypeIds)
854
- self:setObjectDataEntryIdsLevelField("aeff", effectBuffTypeIds)
988
+ self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
855
989
  end
856
990
  },
857
991
  true
@@ -947,7 +1081,7 @@ __TS__SetDescriptor(
947
1081
  },
948
1082
  true
949
1083
  )
950
- local _ = postcompile(function()
1084
+ postcompile(function()
951
1085
  for abilityType in pairs(isButtonVisibleFalseAbilityTypes) do
952
1086
  abilityType.hotkey = ""
953
1087
  abilityType.buttonPositionX = 0
@@ -959,13 +1093,38 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
959
1093
  4,
960
1094
  function(caster, ability)
961
1095
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
962
- Timer:run(function()
963
- caster:playAnimation(animationFQN)
964
- end)
1096
+ Timer:run(caster, "playAnimation", animationFQN)
965
1097
  end
966
1098
  end
967
1099
  )
968
1100
  end
1101
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
1102
+ if soundPresetId ~= nil then
1103
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
1104
+ 4,
1105
+ function(caster, ability, target)
1106
+ if __TS__InstanceOf(target, Unit) then
1107
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
1108
+ else
1109
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
1110
+ end
1111
+ end
1112
+ )
1113
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1114
+ 4,
1115
+ function(caster, ability, x, y)
1116
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1117
+ end
1118
+ )
1119
+ end
1120
+ end
1121
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1122
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1123
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1124
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1125
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1126
+ end
1127
+ end)
969
1128
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
970
1129
  return mapValues(
971
1130
  casterCastingEffectPresetsByAbilityTypeId,
@@ -978,10 +1137,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
978
1137
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
979
1138
  )
980
1139
  end)
1140
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1141
+ return mapValues(
1142
+ casterCastingEffectPresetsByAbilityTypeId,
1143
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1144
+ )
1145
+ end)
981
1146
  local casterCastingEffectsByCaster = {}
982
1147
  local function handleAbilityCastingStartEvent(caster, ability)
983
1148
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
984
1149
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1150
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
985
1151
  local effects = {}
986
1152
  if effectModelPaths ~= nil then
987
1153
  for i = 1, #effectModelPaths do
@@ -990,7 +1156,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
990
1156
  if attachmentPoint == nil or attachmentPoint == "" then
991
1157
  attachmentPoint = "origin"
992
1158
  end
993
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1159
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
994
1160
  end
995
1161
  end
996
1162
  casterCastingEffectsByCaster[caster] = effects
@@ -1021,10 +1187,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1021
1187
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1022
1188
  )
1023
1189
  end)
1190
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1191
+ return mapValues(
1192
+ casterChannelingEffectPresetsByAbilityTypeId,
1193
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1194
+ )
1195
+ end)
1024
1196
  local casterChannelingEffectsByCaster = {}
1025
1197
  local function handleAbilityChannelingStartEvent(caster, ability)
1026
1198
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1027
1199
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1200
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1028
1201
  local effects = {}
1029
1202
  if effectModelPaths ~= nil then
1030
1203
  for i = 1, #effectModelPaths do
@@ -1033,23 +1206,128 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1033
1206
  if attachmentPoint == nil or attachmentPoint == "" then
1034
1207
  attachmentPoint = "origin"
1035
1208
  end
1036
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1209
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1037
1210
  end
1038
1211
  end
1039
1212
  casterChannelingEffectsByCaster[caster] = effects
1040
1213
  end
1214
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1215
+ local function toData(presets)
1216
+ if presets == nil then
1217
+ return nil
1218
+ end
1219
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1220
+ local parameters = map(presets, "parameters")
1221
+ return {
1222
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1223
+ attachmentPoints = __TS__ArraySome(
1224
+ attachmentPoints,
1225
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1226
+ ) and attachmentPoints or nil,
1227
+ parameters = __TS__ArraySome(
1228
+ presets,
1229
+ function(____, preset) return preset.parameters ~= nil end
1230
+ ) and parameters or nil
1231
+ }
1232
+ end
1233
+ local abilityTypeIds = {}
1234
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1235
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1236
+ abilityTypeIds[abilityTypeId] = true
1237
+ end
1238
+ end
1239
+ local result = {}
1240
+ for abilityTypeId in pairs(abilityTypeIds) do
1241
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1242
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1243
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1244
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1245
+ local ____math_max_8 = math.max
1246
+ local ____opt_0 = presetsSD or presets
1247
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1248
+ local ____opt_2 = presetsHD or presets
1249
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1250
+ local ____opt_4 = presetsDE or presets
1251
+ result[abilityTypeId] = {
1252
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1253
+ data = toData(presets),
1254
+ dataSD = toData(presetsSD),
1255
+ dataHD = toData(presetsHD),
1256
+ dataDE = toData(presetsDE)
1257
+ }
1258
+ end
1259
+ return result
1260
+ end)
1261
+ local targetChannelingEffectsByCaster = {}
1262
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1263
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1264
+ if effectsData == nil then
1265
+ return
1266
+ end
1267
+ local graphicsMode = LocalClient.graphicsMode
1268
+ local ____temp_10
1269
+ if graphicsMode == 0 then
1270
+ ____temp_10 = effectsData.dataSD
1271
+ else
1272
+ local ____temp_9
1273
+ if graphicsMode == 1 then
1274
+ ____temp_9 = effectsData.dataHD
1275
+ else
1276
+ ____temp_9 = effectsData.dataDE
1277
+ end
1278
+ ____temp_10 = ____temp_9
1279
+ end
1280
+ local data = ____temp_10 or effectsData.data
1281
+ local modelPaths = data and data.modelPaths
1282
+ local attachmentPoints = data and data.attachmentPoints
1283
+ local parameters = data and data.parameters
1284
+ local effects = {}
1285
+ for i = 1, effectsData.effectCount do
1286
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1287
+ local effectParameters = parameters and parameters[i]
1288
+ if type(xOrWidget) == "number" then
1289
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1290
+ else
1291
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1292
+ if attachmentPoint == nil or attachmentPoint == "" then
1293
+ attachmentPoint = "origin"
1294
+ end
1295
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1296
+ end
1297
+ end
1298
+ targetChannelingEffectsByCaster[caster] = effects
1299
+ end
1300
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1301
+ createTargetChannelingEffects(caster, ability.typeId, target)
1302
+ end
1303
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1304
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1305
+ end
1041
1306
  local function handleAbilityStopChannelingEvent(caster)
1042
- local effects = casterChannelingEffectsByCaster[caster]
1043
- if effects ~= nil then
1044
- for i = 1, #effects do
1045
- effects[i]:destroy()
1307
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1308
+ if casterEffects ~= nil then
1309
+ for i = 1, #casterEffects do
1310
+ casterEffects[i]:destroy()
1046
1311
  end
1047
1312
  casterChannelingEffectsByCaster[caster] = nil
1048
1313
  end
1314
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1315
+ if targetEffects ~= nil then
1316
+ for i = 1, #targetEffects do
1317
+ targetEffects[i]:destroy()
1318
+ end
1319
+ targetChannelingEffectsByCaster[caster] = nil
1320
+ end
1049
1321
  end
1050
1322
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1051
1323
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1052
1324
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1053
1325
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1054
1326
  end
1327
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1328
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1329
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1330
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1331
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1332
+ end
1055
1333
  return ____exports