warscript 0.0.1-dev.4f7cd3b → 0.0.1-dev.524fae9

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 (430) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/dummy.lua +4 -2
  6. package/core/types/effect.d.ts +12 -4
  7. package/core/types/effect.lua +67 -104
  8. package/core/types/frame.d.ts +16 -2
  9. package/core/types/frame.lua +141 -77
  10. package/core/types/handle.lua +9 -9
  11. package/core/types/item.d.ts +1 -0
  12. package/core/types/item.lua +1 -0
  13. package/core/types/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 +18 -3
  21. package/core/types/tileCell.lua +108 -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 +14 -1
  56. package/engine/internal/ability.lua +113 -46
  57. package/engine/internal/item/ability.lua +82 -14
  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.d.ts +2 -0
  94. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  95. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  96. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  97. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  98. package/engine/internal/unit/allowed-targets.lua +9 -1
  99. package/engine/internal/unit/appearance.d.ts +15 -0
  100. package/engine/internal/unit/appearance.lua +85 -0
  101. package/engine/internal/unit/attributes.d.ts +17 -0
  102. package/engine/internal/unit/attributes.lua +46 -0
  103. package/engine/internal/unit/bonus.d.ts +16 -0
  104. package/engine/internal/unit/bonus.lua +119 -8
  105. package/engine/internal/unit/buff.d.ts +2 -2
  106. package/engine/internal/unit/buff.lua +34 -19
  107. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  108. package/engine/internal/unit/equipment-inventory.lua +233 -0
  109. package/engine/internal/unit/expiration-timer.lua +1 -1
  110. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  111. package/engine/internal/unit/extended-inventory.lua +99 -0
  112. package/engine/internal/unit/fly-height.d.ts +7 -0
  113. package/engine/internal/unit/fly-height.lua +20 -0
  114. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  115. package/engine/internal/unit/ignore-events-items.lua +14 -0
  116. package/engine/internal/unit/interrupts.d.ts +12 -0
  117. package/engine/internal/unit/interrupts.lua +28 -0
  118. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  119. package/engine/internal/unit/inventory.lua +87 -0
  120. package/engine/internal/unit/item-container.d.ts +25 -0
  121. package/engine/internal/unit/item-container.lua +11 -0
  122. package/engine/internal/unit/item-order-events.d.ts +17 -0
  123. package/engine/internal/unit/item-order-events.lua +67 -0
  124. package/engine/internal/unit/item-slot.d.ts +27 -0
  125. package/engine/internal/unit/item-slot.lua +92 -0
  126. package/engine/internal/unit/main-selected.lua +12 -27
  127. package/engine/internal/unit/order.d.ts +20 -0
  128. package/engine/internal/unit/order.lua +136 -0
  129. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  130. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  131. package/engine/internal/unit/range-event.d.ts +12 -0
  132. package/engine/internal/unit/range-event.lua +90 -0
  133. package/engine/internal/unit/scale.d.ts +7 -0
  134. package/engine/internal/unit/scale.lua +20 -0
  135. package/engine/internal/unit+ability.d.ts +2 -1
  136. package/engine/internal/unit+ability.lua +73 -3
  137. package/engine/internal/unit+bonus.lua +3 -3
  138. package/engine/internal/unit+damage.d.ts +11 -11
  139. package/engine/internal/unit+damage.lua +43 -14
  140. package/engine/internal/unit+rally.lua +9 -31
  141. package/engine/internal/unit+spellSteal.lua +1 -2
  142. package/engine/internal/unit-missile-data.lua +58 -32
  143. package/engine/internal/unit-missile-launch.lua +65 -27
  144. package/engine/internal/unit.d.ts +45 -34
  145. package/engine/internal/unit.lua +411 -323
  146. package/engine/lightning.d.ts +12 -5
  147. package/engine/lightning.lua +48 -14
  148. package/engine/local-client.d.ts +28 -0
  149. package/engine/local-client.lua +324 -54
  150. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  151. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  152. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  153. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  154. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  155. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  156. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  157. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  158. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  159. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  160. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  161. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  162. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  163. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  164. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  165. package/engine/object-data/auxiliary/item-class.lua +2 -0
  166. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  167. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  168. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  169. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  170. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  171. package/engine/object-data/auxiliary/order-type.lua +2 -0
  172. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  173. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  174. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  175. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  176. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  177. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  178. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  179. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  180. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  181. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  182. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  183. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  184. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  185. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  186. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  187. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  188. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  189. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  190. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  191. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  192. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  193. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  194. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  195. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  196. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  197. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  198. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  199. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  200. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  201. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  202. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  203. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  204. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  205. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  206. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  207. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  208. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  209. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  210. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  211. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  212. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  213. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  214. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  215. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  216. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  217. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  218. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  219. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  220. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  221. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  222. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  223. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  224. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  225. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  226. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  227. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  228. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  229. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  230. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  231. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  232. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  233. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  234. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  235. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  236. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  237. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  238. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  239. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  240. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  241. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  242. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  243. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  244. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  245. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  246. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  247. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  248. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  249. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  250. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  251. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  252. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  253. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  254. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  255. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  256. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  257. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  258. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  259. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  260. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  261. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  262. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  263. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  264. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  265. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  266. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  267. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  268. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  269. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  270. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  271. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  272. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  273. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  274. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  275. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  276. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  277. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  278. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  279. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  280. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  281. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  282. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  283. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  284. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  285. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  286. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  287. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  288. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  289. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  290. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  291. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  292. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  293. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  294. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  295. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  296. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  297. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  298. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  299. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  300. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  301. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  302. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  303. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  304. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  305. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  306. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  307. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  308. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  309. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  310. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  311. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  312. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  313. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  314. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  315. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  316. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  317. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  318. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  319. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  320. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  321. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  322. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  323. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  324. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  325. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  326. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  327. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  328. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  329. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  330. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  331. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  332. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  333. package/engine/object-data/entry/ability-type/web.lua +52 -0
  334. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  335. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  336. package/engine/object-data/entry/ability-type.d.ts +41 -20
  337. package/engine/object-data/entry/ability-type.lua +329 -32
  338. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  339. package/engine/object-data/entry/buff-type.d.ts +10 -12
  340. package/engine/object-data/entry/buff-type.lua +39 -29
  341. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  342. package/engine/object-data/entry/destructible-type.lua +181 -0
  343. package/engine/object-data/entry/item-type.d.ts +18 -3
  344. package/engine/object-data/entry/item-type.lua +88 -4
  345. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  346. package/engine/object-data/entry/lightning-type.lua +1 -1
  347. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  348. package/engine/object-data/entry/sound-preset.lua +140 -0
  349. package/engine/object-data/entry/unit-type.d.ts +71 -6
  350. package/engine/object-data/entry/unit-type.lua +592 -93
  351. package/engine/object-data/entry/upgrade.d.ts +2 -2
  352. package/engine/object-data/entry/upgrade.lua +4 -4
  353. package/engine/object-data/entry.d.ts +21 -14
  354. package/engine/object-data/entry.lua +68 -32
  355. package/engine/object-field/ability.d.ts +5 -4
  356. package/engine/object-field/ability.lua +10 -6
  357. package/engine/object-field/item.d.ts +22 -0
  358. package/engine/object-field/item.lua +118 -0
  359. package/engine/object-field/unit.d.ts +72 -3
  360. package/engine/object-field/unit.lua +268 -7
  361. package/engine/object-field.d.ts +26 -7
  362. package/engine/object-field.lua +362 -117
  363. package/engine/random.d.ts +10 -0
  364. package/engine/random.lua +21 -0
  365. package/engine/standard/entries/ability-type.d.ts +3102 -7
  366. package/engine/standard/entries/ability-type.lua +0 -6
  367. package/engine/standard/entries/buff-type.d.ts +48 -0
  368. package/engine/standard/entries/buff-type.lua +46 -0
  369. package/engine/standard/entries/item-type.d.ts +1299 -0
  370. package/engine/standard/entries/item-type.lua +2 -0
  371. package/engine/standard/entries/lightning-type.d.ts +42 -15
  372. package/engine/standard/entries/lightning-type.lua +0 -14
  373. package/engine/standard/entries/sound-preset.d.ts +10 -0
  374. package/engine/standard/entries/sound-preset.lua +10 -0
  375. package/engine/standard/entries/unit-type.d.ts +5 -0
  376. package/engine/standard/entries/unit-type.lua +5 -0
  377. package/engine/standard/fields/ability.d.ts +2 -2
  378. package/engine/standard/fields/ability.lua +2 -2
  379. package/engine/standard/fields/item.d.ts +4 -0
  380. package/engine/standard/fields/item.lua +6 -0
  381. package/engine/standard/fields/unit.d.ts +12 -0
  382. package/engine/standard/fields/unit.lua +20 -0
  383. package/engine/synchronization.d.ts +11 -0
  384. package/engine/synchronization.lua +77 -0
  385. package/engine/text-tag.d.ts +36 -2
  386. package/engine/text-tag.lua +250 -10
  387. package/engine/unit.d.ts +12 -1
  388. package/engine/unit.lua +12 -1
  389. package/event.d.ts +1 -1
  390. package/lualib_bundle.lua +1 -1
  391. package/math.d.ts +2 -0
  392. package/math.lua +14 -0
  393. package/net/socket.lua +1 -1
  394. package/network.lua +25 -1
  395. package/objutil/buff.lua +12 -11
  396. package/objutil/object.lua +1 -1
  397. package/objutil/unit.lua +8 -0
  398. package/operation.d.ts +8 -1
  399. package/operation.lua +38 -18
  400. package/package.json +3 -23
  401. package/patch-lua.lua +15 -0
  402. package/patch-lualib.lua +1 -1
  403. package/utility/arrays.d.ts +3 -0
  404. package/utility/arrays.lua +23 -0
  405. package/utility/callback-array.d.ts +17 -0
  406. package/utility/callback-array.lua +61 -0
  407. package/utility/functions.d.ts +8 -0
  408. package/utility/functions.lua +13 -0
  409. package/utility/linked-map.d.ts +35 -0
  410. package/utility/linked-map.lua +107 -0
  411. package/utility/linked-set.d.ts +5 -1
  412. package/utility/linked-set.lua +49 -1
  413. package/utility/lua-maps.d.ts +15 -2
  414. package/utility/lua-maps.lua +53 -2
  415. package/utility/lua-sets.d.ts +2 -0
  416. package/utility/lua-sets.lua +7 -0
  417. package/utility/random.d.ts +102 -0
  418. package/utility/random.lua +273 -0
  419. package/utility/records.lua +20 -1
  420. package/utility/reflection.lua +11 -7
  421. package/utility/types.d.ts +3 -0
  422. package/utility/unordered-map.d.ts +27 -0
  423. package/utility/unordered-map.lua +99 -0
  424. package/core/types/order.d.ts +0 -25
  425. package/core/types/order.lua +0 -55
  426. package/engine/internal/unit/item.lua +0 -79
  427. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  428. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  429. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  430. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -2,6 +2,8 @@ local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
5
7
  local ____exports = {}
6
8
  local ____unit = require("engine.internal.unit")
7
9
  local Unit = ____unit.Unit
@@ -17,9 +19,11 @@ local array = ____arrays.array
17
19
  local map = ____arrays.map
18
20
  local mapIndexed = ____arrays.mapIndexed
19
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
22
+ local attachmentPointToNodeFQN = ____attachment_2Dpreset.attachmentPointToNodeFQN
20
23
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
21
24
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
22
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
25
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
26
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
23
27
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
24
28
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
25
29
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -33,11 +37,24 @@ local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.u
33
37
  local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
34
38
  local ____upgrade = require("engine.object-data.entry.upgrade")
35
39
  local Upgrade = ____upgrade.Upgrade
40
+ local ____sound = require("core.types.sound")
41
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
42
+ local Sound3D = ____sound.Sound3D
43
+ local SoundSettings = ____sound.SoundSettings
44
+ local ____lua_2Dsets = require("utility.lua-sets")
45
+ local luaSetOf = ____lua_2Dsets.luaSetOf
46
+ local ____local_2Dclient = require("engine.local-client")
47
+ local LocalClient = ____local_2Dclient.LocalClient
36
48
  local castAnimationFQNByAbilityTypeId = {}
37
49
  local isButtonVisibleFalseAbilityTypes = {}
38
50
  local casterCastingEffectPresetsByAbilityTypeId = {}
39
51
  local casterChannelingEffectPresetsByAbilityTypeId = {}
40
52
  local targetCastingEffectPresetsByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
55
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
56
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
57
+ local targetEffectSoundPresetByAbilityTypeId = {}
41
58
  ____exports.AbilityType = __TS__Class()
42
59
  local AbilityType = ____exports.AbilityType
43
60
  AbilityType.name = "AbilityType"
@@ -113,7 +130,7 @@ __TS__SetDescriptor(
113
130
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
114
131
  end,
115
132
  set = function(self, casterCastingEffectPresets)
116
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
133
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
117
134
  end
118
135
  },
119
136
  true
@@ -126,7 +143,7 @@ __TS__SetDescriptor(
126
143
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
127
144
  end,
128
145
  set = function(self, casterChannelingEffectPresets)
129
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
146
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
130
147
  end
131
148
  },
132
149
  true
@@ -196,6 +213,19 @@ __TS__SetDescriptor(
196
213
  },
197
214
  true
198
215
  )
216
+ __TS__SetDescriptor(
217
+ AbilityType.prototype,
218
+ "iconPathDE",
219
+ {
220
+ get = function(self)
221
+ return self:getStringField("aart:de")
222
+ end,
223
+ set = function(self, iconPathDE)
224
+ self:setStringField("aart:de", iconPathDE)
225
+ end
226
+ },
227
+ true
228
+ )
199
229
  __TS__SetDescriptor(
200
230
  AbilityType.prototype,
201
231
  "isButtonVisible",
@@ -271,10 +301,10 @@ __TS__SetDescriptor(
271
301
  "lightningTypeIds",
272
302
  {
273
303
  get = function(self)
274
- return self:getObjectDataEntryIdsField("alig")
304
+ return self:getObjectDataEntryNumericIdsField("alig")
275
305
  end,
276
306
  set = function(self, lightningTypeIds)
277
- self:setObjectDataEntryIdsField("alig", lightningTypeIds)
307
+ self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
278
308
  end
279
309
  },
280
310
  true
@@ -318,6 +348,19 @@ __TS__SetDescriptor(
318
348
  },
319
349
  true
320
350
  )
351
+ __TS__SetDescriptor(
352
+ AbilityType.prototype,
353
+ "missileModelPathDE",
354
+ {
355
+ get = function(self)
356
+ return self:getStringField("amat:de")
357
+ end,
358
+ set = function(self, missileModelPathDE)
359
+ self:setStringField("amat:de", missileModelPathDE)
360
+ end
361
+ },
362
+ true
363
+ )
321
364
  __TS__SetDescriptor(
322
365
  AbilityType.prototype,
323
366
  "missileMovementArc",
@@ -346,13 +389,30 @@ __TS__SetDescriptor(
346
389
  )
347
390
  __TS__SetDescriptor(
348
391
  AbilityType.prototype,
349
- "specialAttachmentPreset",
392
+ "specialEffectModelPaths",
393
+ {
394
+ get = function(self)
395
+ return self:getStringsField("asat")
396
+ end,
397
+ set = function(self, specialEffectModelPaths)
398
+ self:setStringsField("asat", specialEffectModelPaths)
399
+ end
400
+ },
401
+ true
402
+ )
403
+ __TS__SetDescriptor(
404
+ AbilityType.prototype,
405
+ "specialEffectAttachmentPoint",
350
406
  {
351
407
  get = function(self)
352
- return self:getAttachmentPresetField("asat", "aspt")
408
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField("aspt"))
409
+ return {nodeName = nodeName, nodeQualifiers = nodeQualifiers}
353
410
  end,
354
- set = function(self, specialAttachmentPreset)
355
- self:setAttachmentPresetField("asat", "aspt", specialAttachmentPreset)
411
+ set = function(self, specialEffectAttachmentPoint)
412
+ self:setStringField(
413
+ "aspt",
414
+ attachmentPointToNodeFQN(specialEffectAttachmentPoint)
415
+ )
356
416
  end
357
417
  },
358
418
  true
@@ -365,7 +425,59 @@ __TS__SetDescriptor(
365
425
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
366
426
  end,
367
427
  set = function(self, targetCastingEffectPresets)
368
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
428
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
429
+ end
430
+ },
431
+ true
432
+ )
433
+ __TS__SetDescriptor(
434
+ AbilityType.prototype,
435
+ "targetChannelingEffectPresets",
436
+ {
437
+ get = function(self)
438
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
439
+ end,
440
+ set = function(self, targetChannelingEffectPresets)
441
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
442
+ end
443
+ },
444
+ true
445
+ )
446
+ __TS__SetDescriptor(
447
+ AbilityType.prototype,
448
+ "targetChannelingEffectPresetsSD",
449
+ {
450
+ get = function(self)
451
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
452
+ end,
453
+ set = function(self, targetChannelingEffectPresetsSD)
454
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
455
+ end
456
+ },
457
+ true
458
+ )
459
+ __TS__SetDescriptor(
460
+ AbilityType.prototype,
461
+ "targetChannelingEffectPresetsHD",
462
+ {
463
+ get = function(self)
464
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
465
+ end,
466
+ set = function(self, targetChannelingEffectPresetsHD)
467
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
468
+ end
469
+ },
470
+ true
471
+ )
472
+ __TS__SetDescriptor(
473
+ AbilityType.prototype,
474
+ "targetChannelingEffectPresetsDE",
475
+ {
476
+ get = function(self)
477
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
478
+ end,
479
+ set = function(self, targetChannelingEffectPresetsDE)
480
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
369
481
  end
370
482
  },
371
483
  true
@@ -451,6 +563,33 @@ __TS__SetDescriptor(
451
563
  },
452
564
  true
453
565
  )
566
+ __TS__SetDescriptor(
567
+ AbilityType.prototype,
568
+ "targetEffectPresetsDE",
569
+ {
570
+ get = function(self)
571
+ return self:getAttachmentPresetListField(
572
+ "atat:de",
573
+ array(
574
+ 6,
575
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
576
+ )
577
+ )
578
+ end,
579
+ set = function(self, targetEffectPresetsDE)
580
+ self:setAttachmentPresetListField(
581
+ "atat:de",
582
+ array(
583
+ 6,
584
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
585
+ ),
586
+ "atac:de",
587
+ targetEffectPresetsDE
588
+ )
589
+ end
590
+ },
591
+ true
592
+ )
454
593
  __TS__SetDescriptor(
455
594
  AbilityType.prototype,
456
595
  "turnOffButtonPositionX",
@@ -508,7 +647,7 @@ __TS__SetDescriptor(
508
647
  "techTreeDependencies",
509
648
  {
510
649
  get = function(self)
511
- local techTreeDependencyIds = self:getObjectDataEntryIdsField("areq")
650
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
512
651
  local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
513
652
  return mapIndexed(
514
653
  techTreeDependencyIds,
@@ -528,7 +667,7 @@ __TS__SetDescriptor(
528
667
  map(techTreeDependencies, extractTechTreeDependencyInputLevel),
529
668
  function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
530
669
  )
531
- self:setObjectDataEntryIdsField("areq", techTreeDependencyIds)
670
+ self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
532
671
  self:setNumbersField("arqa", techTreeDependencyInternalLevels)
533
672
  end
534
673
  },
@@ -718,26 +857,40 @@ __TS__SetDescriptor(
718
857
  )
719
858
  __TS__SetDescriptor(
720
859
  AbilityType.prototype,
721
- "soundPresetName",
860
+ "casterEffectSoundPresetId",
722
861
  {
723
862
  get = function(self)
724
- return self:getStringField("aefs")
863
+ local casterEffectSoundPresetId = self:getStringField("aefs")
864
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
725
865
  end,
726
- set = function(self, soundPresetName)
727
- self:setStringField("aefs", soundPresetName)
866
+ set = function(self, casterEffectSoundPresetId)
867
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
728
868
  end
729
869
  },
730
870
  true
731
871
  )
732
872
  __TS__SetDescriptor(
733
873
  AbilityType.prototype,
734
- "loopingSoundPresetName",
874
+ "casterEffectLoopingSoundPresetId",
735
875
  {
736
876
  get = function(self)
737
877
  return self:getStringField("aefl")
738
878
  end,
739
- set = function(self, loopingSoundPresetName)
740
- self:setStringField("aefl", loopingSoundPresetName)
879
+ set = function(self, casterEffectLoopingSoundPresetId)
880
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
881
+ end
882
+ },
883
+ true
884
+ )
885
+ __TS__SetDescriptor(
886
+ AbilityType.prototype,
887
+ "targetEffectSoundPresetId",
888
+ {
889
+ get = function(self)
890
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
891
+ end,
892
+ set = function(self, targetEffectSoundPresetId)
893
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
741
894
  end
742
895
  },
743
896
  true
@@ -796,10 +949,10 @@ __TS__SetDescriptor(
796
949
  "buffTypeIds",
797
950
  {
798
951
  get = function(self)
799
- return self:getObjectDataEntryIdsLevelField("abuf")
952
+ return self:getObjectDataEntryNumericIdsLevelField("abuf")
800
953
  end,
801
954
  set = function(self, buffTypeIds)
802
- self:setObjectDataEntryIdsLevelField("abuf", buffTypeIds)
955
+ self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
803
956
  end
804
957
  },
805
958
  true
@@ -848,10 +1001,10 @@ __TS__SetDescriptor(
848
1001
  "effectBuffTypeIds",
849
1002
  {
850
1003
  get = function(self)
851
- return self:getObjectDataEntryIdsLevelField("aeff")
1004
+ return self:getObjectDataEntryNumericIdsLevelField("aeff")
852
1005
  end,
853
1006
  set = function(self, effectBuffTypeIds)
854
- self:setObjectDataEntryIdsLevelField("aeff", effectBuffTypeIds)
1007
+ self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
855
1008
  end
856
1009
  },
857
1010
  true
@@ -959,13 +1112,38 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
959
1112
  4,
960
1113
  function(caster, ability)
961
1114
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
962
- Timer:run(function()
963
- caster:playAnimation(animationFQN)
964
- end)
1115
+ Timer:run(caster, "playAnimation", animationFQN)
965
1116
  end
966
1117
  end
967
1118
  )
968
1119
  end
1120
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
1121
+ if soundPresetId ~= nil then
1122
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
1123
+ 4,
1124
+ function(caster, ability, target)
1125
+ if __TS__InstanceOf(target, Unit) then
1126
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
1127
+ else
1128
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
1129
+ end
1130
+ end
1131
+ )
1132
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1133
+ 4,
1134
+ function(caster, ability, x, y)
1135
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1136
+ end
1137
+ )
1138
+ end
1139
+ end
1140
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1141
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1142
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1143
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1144
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1145
+ end
1146
+ end)
969
1147
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
970
1148
  return mapValues(
971
1149
  casterCastingEffectPresetsByAbilityTypeId,
@@ -978,10 +1156,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
978
1156
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
979
1157
  )
980
1158
  end)
1159
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1160
+ return mapValues(
1161
+ casterCastingEffectPresetsByAbilityTypeId,
1162
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1163
+ )
1164
+ end)
981
1165
  local casterCastingEffectsByCaster = {}
982
1166
  local function handleAbilityCastingStartEvent(caster, ability)
983
1167
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
984
1168
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1169
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
985
1170
  local effects = {}
986
1171
  if effectModelPaths ~= nil then
987
1172
  for i = 1, #effectModelPaths do
@@ -990,7 +1175,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
990
1175
  if attachmentPoint == nil or attachmentPoint == "" then
991
1176
  attachmentPoint = "origin"
992
1177
  end
993
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1178
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
994
1179
  end
995
1180
  end
996
1181
  casterCastingEffectsByCaster[caster] = effects
@@ -1021,10 +1206,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1021
1206
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1022
1207
  )
1023
1208
  end)
1209
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1210
+ return mapValues(
1211
+ casterChannelingEffectPresetsByAbilityTypeId,
1212
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1213
+ )
1214
+ end)
1024
1215
  local casterChannelingEffectsByCaster = {}
1025
1216
  local function handleAbilityChannelingStartEvent(caster, ability)
1026
1217
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1027
1218
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1219
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1028
1220
  local effects = {}
1029
1221
  if effectModelPaths ~= nil then
1030
1222
  for i = 1, #effectModelPaths do
@@ -1033,23 +1225,128 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1033
1225
  if attachmentPoint == nil or attachmentPoint == "" then
1034
1226
  attachmentPoint = "origin"
1035
1227
  end
1036
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1228
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1037
1229
  end
1038
1230
  end
1039
1231
  casterChannelingEffectsByCaster[caster] = effects
1040
1232
  end
1233
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1234
+ local function toData(presets)
1235
+ if presets == nil then
1236
+ return nil
1237
+ end
1238
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1239
+ local parameters = map(presets, "parameters")
1240
+ return {
1241
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1242
+ attachmentPoints = __TS__ArraySome(
1243
+ attachmentPoints,
1244
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1245
+ ) and attachmentPoints or nil,
1246
+ parameters = __TS__ArraySome(
1247
+ presets,
1248
+ function(____, preset) return preset.parameters ~= nil end
1249
+ ) and parameters or nil
1250
+ }
1251
+ end
1252
+ local abilityTypeIds = {}
1253
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1254
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1255
+ abilityTypeIds[abilityTypeId] = true
1256
+ end
1257
+ end
1258
+ local result = {}
1259
+ for abilityTypeId in pairs(abilityTypeIds) do
1260
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1261
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1262
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1263
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1264
+ local ____math_max_8 = math.max
1265
+ local ____opt_0 = presetsSD or presets
1266
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1267
+ local ____opt_2 = presetsHD or presets
1268
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1269
+ local ____opt_4 = presetsDE or presets
1270
+ result[abilityTypeId] = {
1271
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1272
+ data = toData(presets),
1273
+ dataSD = toData(presetsSD),
1274
+ dataHD = toData(presetsHD),
1275
+ dataDE = toData(presetsDE)
1276
+ }
1277
+ end
1278
+ return result
1279
+ end)
1280
+ local targetChannelingEffectsByCaster = {}
1281
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1282
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1283
+ if effectsData == nil then
1284
+ return
1285
+ end
1286
+ local graphicsMode = LocalClient.graphicsMode
1287
+ local ____temp_10
1288
+ if graphicsMode == 0 then
1289
+ ____temp_10 = effectsData.dataSD
1290
+ else
1291
+ local ____temp_9
1292
+ if graphicsMode == 1 then
1293
+ ____temp_9 = effectsData.dataHD
1294
+ else
1295
+ ____temp_9 = effectsData.dataDE
1296
+ end
1297
+ ____temp_10 = ____temp_9
1298
+ end
1299
+ local data = ____temp_10 or effectsData.data
1300
+ local modelPaths = data and data.modelPaths
1301
+ local attachmentPoints = data and data.attachmentPoints
1302
+ local parameters = data and data.parameters
1303
+ local effects = {}
1304
+ for i = 1, effectsData.effectCount do
1305
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1306
+ local effectParameters = parameters and parameters[i]
1307
+ if type(xOrWidget) == "number" then
1308
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1309
+ else
1310
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1311
+ if attachmentPoint == nil or attachmentPoint == "" then
1312
+ attachmentPoint = "origin"
1313
+ end
1314
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1315
+ end
1316
+ end
1317
+ targetChannelingEffectsByCaster[caster] = effects
1318
+ end
1319
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1320
+ createTargetChannelingEffects(caster, ability.typeId, target)
1321
+ end
1322
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1323
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1324
+ end
1041
1325
  local function handleAbilityStopChannelingEvent(caster)
1042
- local effects = casterChannelingEffectsByCaster[caster]
1043
- if effects ~= nil then
1044
- for i = 1, #effects do
1045
- effects[i]:destroy()
1326
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1327
+ if casterEffects ~= nil then
1328
+ for i = 1, #casterEffects do
1329
+ casterEffects[i]:destroy()
1046
1330
  end
1047
1331
  casterChannelingEffectsByCaster[caster] = nil
1048
1332
  end
1333
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1334
+ if targetEffects ~= nil then
1335
+ for i = 1, #targetEffects do
1336
+ targetEffects[i]:destroy()
1337
+ end
1338
+ targetChannelingEffectsByCaster[caster] = nil
1339
+ end
1049
1340
  end
1050
1341
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1051
1342
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1052
1343
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1053
1344
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1054
1345
  end
1346
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1347
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1348
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1349
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1350
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1351
+ end
1055
1352
  return ____exports