warscript 0.0.1-dev.8c7ee30 → 0.0.1-dev.8d8d605

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +9 -0
  10. package/core/types/frame.lua +193 -23
  11. package/core/types/handle.lua +11 -9
  12. package/core/types/item.d.ts +1 -0
  13. package/core/types/item.lua +1 -0
  14. package/core/types/player.d.ts +18 -1
  15. package/core/types/player.lua +76 -26
  16. package/core/types/playerCamera.d.ts +2 -0
  17. package/core/types/playerCamera.lua +123 -5
  18. package/core/types/playerColor.lua +4 -3
  19. package/core/types/sound.d.ts +18 -25
  20. package/core/types/sound.lua +113 -33
  21. package/core/types/tileCell.d.ts +11 -1
  22. package/core/types/tileCell.lua +97 -0
  23. package/core/types/timer.d.ts +9 -8
  24. package/core/types/timer.lua +45 -23
  25. package/core/types/unit.d.ts +4 -0
  26. package/core/types/unit.lua +4 -0
  27. package/core/util.d.ts +1 -1
  28. package/core/util.lua +18 -1
  29. package/decl/native.d.ts +1718 -964
  30. package/destroyable.d.ts +1 -0
  31. package/destroyable.lua +9 -0
  32. package/engine/behavior.d.ts +16 -3
  33. package/engine/behavior.lua +233 -73
  34. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  35. package/engine/behaviour/ability/always-enabled.lua +31 -0
  36. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  37. package/engine/behaviour/ability/apply-buff.lua +36 -4
  38. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  39. package/engine/behaviour/ability/damage.d.ts +42 -11
  40. package/engine/behaviour/ability/damage.lua +88 -39
  41. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  42. package/engine/behaviour/ability/emulate-impact.lua +44 -0
  43. package/engine/behaviour/ability/heal.d.ts +33 -6
  44. package/engine/behaviour/ability/heal.lua +89 -10
  45. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  46. package/engine/behaviour/ability/instant-impact.lua +4 -19
  47. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  48. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  49. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  50. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  51. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  52. package/engine/behaviour/ability/restore-mana.lua +29 -0
  53. package/engine/behaviour/ability.d.ts +29 -7
  54. package/engine/behaviour/ability.lua +148 -43
  55. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  56. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  57. package/engine/behaviour/unit.d.ts +46 -2
  58. package/engine/behaviour/unit.lua +290 -6
  59. package/engine/buff.d.ts +166 -57
  60. package/engine/buff.lua +766 -274
  61. package/engine/game-map.d.ts +7 -0
  62. package/engine/game-map.lua +32 -0
  63. package/engine/index.d.ts +2 -1
  64. package/engine/internal/ability.d.ts +27 -14
  65. package/engine/internal/ability.lua +164 -101
  66. package/engine/internal/item/ability.lua +162 -4
  67. package/engine/internal/item/fields.d.ts +12 -0
  68. package/engine/internal/item/fields.lua +33 -0
  69. package/engine/internal/item+owner.d.ts +1 -0
  70. package/engine/internal/item+owner.lua +19 -6
  71. package/engine/internal/item.d.ts +30 -18
  72. package/engine/internal/item.lua +292 -102
  73. package/engine/internal/mechanics/ability-duration.lua +1 -1
  74. package/engine/internal/mechanics/cast-ability.lua +6 -3
  75. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  76. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  77. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  78. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  79. package/engine/internal/misc/frame-coordinates.lua +21 -0
  80. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  81. package/engine/internal/misc/get-terrain-z.lua +11 -0
  82. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  83. package/engine/internal/misc/player-local-handle.lua +5 -0
  84. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  85. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  86. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  87. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  88. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  89. package/engine/internal/object-data/evasion-probability.lua +16 -0
  90. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  91. package/engine/internal/object-data/health-bonus.lua +16 -0
  92. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  93. package/engine/internal/object-data/mana-bonus.lua +16 -0
  94. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  95. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  96. package/engine/internal/unit/ability.d.ts +45 -1
  97. package/engine/internal/unit/ability.lua +142 -19
  98. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  99. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  100. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  101. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  102. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  103. package/engine/internal/unit/allowed-targets.lua +9 -1
  104. package/engine/internal/unit/appearance.d.ts +15 -0
  105. package/engine/internal/unit/appearance.lua +85 -0
  106. package/engine/internal/unit/attributes.d.ts +17 -0
  107. package/engine/internal/unit/attributes.lua +46 -0
  108. package/engine/internal/unit/bag.d.ts +18 -0
  109. package/engine/internal/unit/bag.lua +63 -0
  110. package/engine/internal/unit/bonus.d.ts +12 -2
  111. package/engine/internal/unit/bonus.lua +56 -4
  112. package/engine/internal/unit/buff.d.ts +2 -2
  113. package/engine/internal/unit/buff.lua +34 -19
  114. package/engine/internal/unit/equipment.d.ts +36 -0
  115. package/engine/internal/unit/equipment.lua +169 -0
  116. package/engine/internal/unit/fly-height.d.ts +7 -0
  117. package/engine/internal/unit/fly-height.lua +20 -0
  118. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  119. package/engine/internal/unit/ignore-events-items.lua +5 -0
  120. package/engine/internal/unit/interrupts.d.ts +12 -0
  121. package/engine/internal/unit/interrupts.lua +28 -0
  122. package/engine/internal/unit/inventory.d.ts +24 -0
  123. package/engine/internal/unit/inventory.lua +77 -0
  124. package/engine/internal/unit/main-selected.d.ts +13 -0
  125. package/engine/internal/unit/main-selected.lua +36 -0
  126. package/engine/internal/unit/order.d.ts +20 -0
  127. package/engine/internal/unit/order.lua +136 -0
  128. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  129. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  130. package/engine/internal/unit/range-event.d.ts +12 -0
  131. package/engine/internal/unit/range-event.lua +90 -0
  132. package/engine/internal/unit/scale.d.ts +7 -0
  133. package/engine/internal/unit/scale.lua +20 -0
  134. package/engine/internal/unit+ability.lua +12 -3
  135. package/engine/internal/unit+bonus.lua +3 -3
  136. package/engine/internal/unit+damage.d.ts +11 -11
  137. package/engine/internal/unit+damage.lua +43 -14
  138. package/engine/internal/unit+spellSteal.lua +1 -2
  139. package/engine/internal/unit+transport.lua +4 -10
  140. package/engine/internal/unit-missile-data.lua +58 -32
  141. package/engine/internal/unit-missile-launch.lua +70 -13
  142. package/engine/internal/unit.d.ts +63 -30
  143. package/engine/internal/unit.lua +509 -291
  144. package/engine/internal/utility.lua +12 -0
  145. package/engine/lightning.d.ts +12 -5
  146. package/engine/lightning.lua +48 -14
  147. package/engine/local-client.d.ts +34 -2
  148. package/engine/local-client.lua +386 -15
  149. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  150. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  151. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  152. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  153. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  154. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  155. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  156. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  157. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  158. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  159. package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
  160. package/engine/object-data/auxiliary/equipment-type.lua +2 -0
  161. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  162. package/engine/object-data/auxiliary/health-regeneration-type.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/sound-eax.d.ts +10 -0
  168. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  169. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  170. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  171. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  172. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  173. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  174. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  175. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  176. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  177. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  178. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  179. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  180. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  181. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  182. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  183. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  184. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  185. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  186. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  187. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  188. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  189. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  190. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  191. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  192. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  193. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  194. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  195. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  196. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  197. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  198. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  199. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  200. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  201. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  202. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  203. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  204. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  205. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  206. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  207. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  208. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  209. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  210. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  211. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  212. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  213. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  214. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  215. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  216. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  217. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  218. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  219. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  220. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  221. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  222. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  223. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  224. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  225. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  226. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  227. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  228. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  229. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  230. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  231. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  232. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  233. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  234. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  235. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  236. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  237. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  238. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  239. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  240. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  241. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  242. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  243. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  244. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  245. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  246. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  247. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  248. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  249. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  250. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  251. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  252. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  253. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  254. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  255. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  256. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  257. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  258. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  259. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  260. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  261. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  262. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  263. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  264. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  265. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  266. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  267. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  268. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  269. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  270. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  271. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  272. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  273. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  274. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  275. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  276. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  277. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  278. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  279. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  280. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  281. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  282. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  283. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  284. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  285. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  286. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  287. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  288. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  289. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  290. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  291. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  292. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  293. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  294. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  295. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  296. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  297. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  298. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  299. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  300. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  301. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  302. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  303. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  304. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  305. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  306. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  307. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  308. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  309. package/engine/object-data/entry/ability-type/web.lua +52 -0
  310. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  311. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  312. package/engine/object-data/entry/ability-type.d.ts +30 -19
  313. package/engine/object-data/entry/ability-type.lua +230 -40
  314. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  315. package/engine/object-data/entry/buff-type.d.ts +10 -12
  316. package/engine/object-data/entry/buff-type.lua +39 -29
  317. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  318. package/engine/object-data/entry/destructible-type.lua +181 -0
  319. package/engine/object-data/entry/item-type.d.ts +26 -3
  320. package/engine/object-data/entry/item-type.lua +145 -2
  321. package/engine/object-data/entry/lightning-type.d.ts +2 -2
  322. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  323. package/engine/object-data/entry/sound-preset.lua +140 -0
  324. package/engine/object-data/entry/unit-type.d.ts +71 -6
  325. package/engine/object-data/entry/unit-type.lua +592 -93
  326. package/engine/object-data/entry/upgrade.d.ts +2 -2
  327. package/engine/object-data/entry/upgrade.lua +4 -4
  328. package/engine/object-data/entry.d.ts +19 -14
  329. package/engine/object-data/entry.lua +60 -32
  330. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  331. package/engine/object-field/ability.d.ts +28 -5
  332. package/engine/object-field/ability.lua +61 -7
  333. package/engine/object-field/item.d.ts +22 -0
  334. package/engine/object-field/item.lua +118 -0
  335. package/engine/object-field/unit.d.ts +72 -3
  336. package/engine/object-field/unit.lua +268 -7
  337. package/engine/object-field.d.ts +26 -7
  338. package/engine/object-field.lua +362 -117
  339. package/engine/random.d.ts +10 -0
  340. package/engine/random.lua +21 -0
  341. package/engine/standard/entries/ability-type.d.ts +3102 -7
  342. package/engine/standard/entries/ability-type.lua +0 -6
  343. package/engine/standard/entries/buff-type.d.ts +3 -0
  344. package/engine/standard/entries/buff-type.lua +3 -0
  345. package/engine/standard/entries/item-type.d.ts +1299 -0
  346. package/engine/standard/entries/item-type.lua +2 -0
  347. package/engine/standard/entries/sound-preset.d.ts +10 -0
  348. package/engine/standard/entries/sound-preset.lua +10 -0
  349. package/engine/standard/entries/unit-type.d.ts +5 -0
  350. package/engine/standard/entries/unit-type.lua +5 -0
  351. package/engine/standard/fields/ability.d.ts +4 -2
  352. package/engine/standard/fields/ability.lua +4 -2
  353. package/engine/standard/fields/item.d.ts +4 -0
  354. package/engine/standard/fields/item.lua +6 -0
  355. package/engine/standard/fields/unit.d.ts +12 -0
  356. package/engine/standard/fields/unit.lua +20 -0
  357. package/engine/synchronization.d.ts +11 -0
  358. package/engine/synchronization.lua +77 -0
  359. package/engine/text-tag.d.ts +36 -2
  360. package/engine/text-tag.lua +250 -10
  361. package/engine/unit.d.ts +12 -0
  362. package/engine/unit.lua +12 -0
  363. package/event.d.ts +1 -1
  364. package/index.d.ts +1 -0
  365. package/index.lua +1 -0
  366. package/lualib_bundle.lua +8 -3
  367. package/math.d.ts +2 -0
  368. package/math.lua +14 -0
  369. package/net/socket.d.ts +7 -1
  370. package/net/socket.lua +45 -4
  371. package/network.d.ts +1 -0
  372. package/network.lua +28 -3
  373. package/objutil/buff.lua +12 -11
  374. package/objutil/object.lua +1 -1
  375. package/objutil/unit.lua +8 -0
  376. package/operation.d.ts +8 -1
  377. package/operation.lua +38 -18
  378. package/package.json +3 -23
  379. package/patch-lua.d.ts +0 -0
  380. package/patch-lua.lua +25 -0
  381. package/patch-lualib.lua +1 -1
  382. package/property.d.ts +55 -0
  383. package/property.lua +374 -0
  384. package/utility/arrays.d.ts +10 -1
  385. package/utility/arrays.lua +45 -3
  386. package/utility/callback-array.d.ts +17 -0
  387. package/utility/callback-array.lua +61 -0
  388. package/utility/functions.d.ts +8 -0
  389. package/utility/functions.lua +13 -0
  390. package/utility/lazy.d.ts +2 -0
  391. package/utility/lazy.lua +14 -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 +16 -3
  395. package/utility/linked-set.lua +54 -3
  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 +4 -0
  405. package/utility/unordered-map.d.ts +27 -0
  406. package/utility/unordered-map.lua +99 -0
  407. package/core/mapbounds.d.ts +0 -8
  408. package/core/mapbounds.lua +0 -12
  409. package/core/types/order.d.ts +0 -25
  410. package/core/types/order.lua +0 -55
  411. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  412. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  413. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  414. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,8 +1,8 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
- local __TS__New = ____lualib.__TS__New
5
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
6
  local ____exports = {}
7
7
  local ____unit = require("engine.internal.unit")
8
8
  local Unit = ____unit.Unit
@@ -20,7 +20,7 @@ local mapIndexed = ____arrays.mapIndexed
20
20
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
21
21
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
22
22
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
23
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
23
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
24
24
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
25
25
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
26
26
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -31,14 +31,22 @@ local ____entry = require("engine.object-data.entry")
31
31
  local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLevelFieldValue
32
32
  local ObjectDataEntry = ____entry.ObjectDataEntry
33
33
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
34
- local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
34
+ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
35
35
  local ____upgrade = require("engine.object-data.entry.upgrade")
36
36
  local Upgrade = ____upgrade.Upgrade
37
+ local ____sound = require("core.types.sound")
38
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
39
+ local Sound3D = ____sound.Sound3D
40
+ local SoundSettings = ____sound.SoundSettings
41
+ local ____lua_2Dsets = require("utility.lua-sets")
42
+ local luaSetOf = ____lua_2Dsets.luaSetOf
37
43
  local castAnimationFQNByAbilityTypeId = {}
38
44
  local isButtonVisibleFalseAbilityTypes = {}
39
45
  local casterCastingEffectPresetsByAbilityTypeId = {}
40
46
  local casterChannelingEffectPresetsByAbilityTypeId = {}
41
47
  local targetCastingEffectPresetsByAbilityTypeId = {}
48
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
49
+ local targetEffectSoundPresetByAbilityTypeId = {}
42
50
  ____exports.AbilityType = __TS__Class()
43
51
  local AbilityType = ____exports.AbilityType
44
52
  AbilityType.name = "AbilityType"
@@ -53,10 +61,7 @@ end
53
61
  function AbilityType.getObjectData(self, map)
54
62
  return map.objects.ability
55
63
  end
56
- AbilityType.idGenerator = __TS__New(
57
- ObjectDataEntryIdGenerator,
58
- fourCC("A000")
59
- )
64
+ AbilityType.idGenerator = abilityTypeIdGenerator
60
65
  __TS__SetDescriptor(
61
66
  AbilityType.prototype,
62
67
  "channelingAnimation",
@@ -117,7 +122,7 @@ __TS__SetDescriptor(
117
122
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
118
123
  end,
119
124
  set = function(self, casterCastingEffectPresets)
120
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
125
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
121
126
  end
122
127
  },
123
128
  true
@@ -130,7 +135,7 @@ __TS__SetDescriptor(
130
135
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
131
136
  end,
132
137
  set = function(self, casterChannelingEffectPresets)
133
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
138
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
134
139
  end
135
140
  },
136
141
  true
@@ -200,6 +205,19 @@ __TS__SetDescriptor(
200
205
  },
201
206
  true
202
207
  )
208
+ __TS__SetDescriptor(
209
+ AbilityType.prototype,
210
+ "iconPathDE",
211
+ {
212
+ get = function(self)
213
+ return self:getStringField("aart:de")
214
+ end,
215
+ set = function(self, iconPathDE)
216
+ self:setStringField("aart:de", iconPathDE)
217
+ end
218
+ },
219
+ true
220
+ )
203
221
  __TS__SetDescriptor(
204
222
  AbilityType.prototype,
205
223
  "isButtonVisible",
@@ -275,10 +293,10 @@ __TS__SetDescriptor(
275
293
  "lightningTypeIds",
276
294
  {
277
295
  get = function(self)
278
- return self:getObjectDataEntryIdsField("alig")
296
+ return self:getObjectDataEntryNumericIdsField("alig")
279
297
  end,
280
298
  set = function(self, lightningTypeIds)
281
- self:setObjectDataEntryIdsField("alig", lightningTypeIds)
299
+ self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
282
300
  end
283
301
  },
284
302
  true
@@ -322,6 +340,19 @@ __TS__SetDescriptor(
322
340
  },
323
341
  true
324
342
  )
343
+ __TS__SetDescriptor(
344
+ AbilityType.prototype,
345
+ "missileModelPathDE",
346
+ {
347
+ get = function(self)
348
+ return self:getStringField("amat:de")
349
+ end,
350
+ set = function(self, missileModelPathDE)
351
+ self:setStringField("amat:de", missileModelPathDE)
352
+ end
353
+ },
354
+ true
355
+ )
325
356
  __TS__SetDescriptor(
326
357
  AbilityType.prototype,
327
358
  "missileMovementArc",
@@ -369,7 +400,20 @@ __TS__SetDescriptor(
369
400
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
370
401
  end,
371
402
  set = function(self, targetCastingEffectPresets)
372
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
403
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
404
+ end
405
+ },
406
+ true
407
+ )
408
+ __TS__SetDescriptor(
409
+ AbilityType.prototype,
410
+ "targetChannelingEffectPresets",
411
+ {
412
+ get = function(self)
413
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
414
+ end,
415
+ set = function(self, targetChannelingEffectPresets)
416
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
373
417
  end
374
418
  },
375
419
  true
@@ -455,6 +499,33 @@ __TS__SetDescriptor(
455
499
  },
456
500
  true
457
501
  )
502
+ __TS__SetDescriptor(
503
+ AbilityType.prototype,
504
+ "targetEffectPresetsDE",
505
+ {
506
+ get = function(self)
507
+ return self:getAttachmentPresetListField(
508
+ "atat:de",
509
+ array(
510
+ 6,
511
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
512
+ )
513
+ )
514
+ end,
515
+ set = function(self, targetEffectPresetsDE)
516
+ self:setAttachmentPresetListField(
517
+ "atat:de",
518
+ array(
519
+ 6,
520
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
521
+ ),
522
+ "atac:de",
523
+ targetEffectPresetsDE
524
+ )
525
+ end
526
+ },
527
+ true
528
+ )
458
529
  __TS__SetDescriptor(
459
530
  AbilityType.prototype,
460
531
  "turnOffButtonPositionX",
@@ -512,7 +583,7 @@ __TS__SetDescriptor(
512
583
  "techTreeDependencies",
513
584
  {
514
585
  get = function(self)
515
- local techTreeDependencyIds = self:getObjectDataEntryIdsField("areq")
586
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
516
587
  local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
517
588
  return mapIndexed(
518
589
  techTreeDependencyIds,
@@ -532,7 +603,7 @@ __TS__SetDescriptor(
532
603
  map(techTreeDependencies, extractTechTreeDependencyInputLevel),
533
604
  function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
534
605
  )
535
- self:setObjectDataEntryIdsField("areq", techTreeDependencyIds)
606
+ self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
536
607
  self:setNumbersField("arqa", techTreeDependencyInternalLevels)
537
608
  end
538
609
  },
@@ -722,26 +793,40 @@ __TS__SetDescriptor(
722
793
  )
723
794
  __TS__SetDescriptor(
724
795
  AbilityType.prototype,
725
- "soundPresetName",
796
+ "casterEffectSoundPresetId",
726
797
  {
727
798
  get = function(self)
728
- return self:getStringField("aefs")
799
+ local casterEffectSoundPresetId = self:getStringField("aefs")
800
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
729
801
  end,
730
- set = function(self, soundPresetName)
731
- self:setStringField("aefs", soundPresetName)
802
+ set = function(self, casterEffectSoundPresetId)
803
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
732
804
  end
733
805
  },
734
806
  true
735
807
  )
736
808
  __TS__SetDescriptor(
737
809
  AbilityType.prototype,
738
- "loopingSoundPresetName",
810
+ "casterEffectLoopingSoundPresetId",
739
811
  {
740
812
  get = function(self)
741
813
  return self:getStringField("aefl")
742
814
  end,
743
- set = function(self, loopingSoundPresetName)
744
- self:setStringField("aefl", loopingSoundPresetName)
815
+ set = function(self, casterEffectLoopingSoundPresetId)
816
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
817
+ end
818
+ },
819
+ true
820
+ )
821
+ __TS__SetDescriptor(
822
+ AbilityType.prototype,
823
+ "targetEffectSoundPresetId",
824
+ {
825
+ get = function(self)
826
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
827
+ end,
828
+ set = function(self, targetEffectSoundPresetId)
829
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
745
830
  end
746
831
  },
747
832
  true
@@ -800,10 +885,10 @@ __TS__SetDescriptor(
800
885
  "buffTypeIds",
801
886
  {
802
887
  get = function(self)
803
- return self:getObjectDataEntryIdsLevelField("abuf")
888
+ return self:getObjectDataEntryNumericIdsLevelField("abuf")
804
889
  end,
805
890
  set = function(self, buffTypeIds)
806
- self:setObjectDataEntryIdsLevelField("abuf", buffTypeIds)
891
+ self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
807
892
  end
808
893
  },
809
894
  true
@@ -852,10 +937,10 @@ __TS__SetDescriptor(
852
937
  "effectBuffTypeIds",
853
938
  {
854
939
  get = function(self)
855
- return self:getObjectDataEntryIdsLevelField("aeff")
940
+ return self:getObjectDataEntryNumericIdsLevelField("aeff")
856
941
  end,
857
942
  set = function(self, effectBuffTypeIds)
858
- self:setObjectDataEntryIdsLevelField("aeff", effectBuffTypeIds)
943
+ self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
859
944
  end
860
945
  },
861
946
  true
@@ -963,13 +1048,38 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
963
1048
  4,
964
1049
  function(caster, ability)
965
1050
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
966
- Timer:run(function()
967
- caster:playAnimation(animationFQN)
968
- end)
1051
+ Timer:run(caster, "playAnimation", animationFQN)
969
1052
  end
970
1053
  end
971
1054
  )
972
1055
  end
1056
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
1057
+ if soundPresetId ~= nil then
1058
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
1059
+ 4,
1060
+ function(caster, ability, target)
1061
+ if __TS__InstanceOf(target, Unit) then
1062
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
1063
+ else
1064
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
1065
+ end
1066
+ end
1067
+ )
1068
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1069
+ 4,
1070
+ function(caster, ability, x, y)
1071
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1072
+ end
1073
+ )
1074
+ end
1075
+ end
1076
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1077
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1078
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1079
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1080
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1081
+ end
1082
+ end)
973
1083
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
974
1084
  return mapValues(
975
1085
  casterCastingEffectPresetsByAbilityTypeId,
@@ -982,10 +1092,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
982
1092
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
983
1093
  )
984
1094
  end)
1095
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1096
+ return mapValues(
1097
+ casterCastingEffectPresetsByAbilityTypeId,
1098
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1099
+ )
1100
+ end)
985
1101
  local casterCastingEffectsByCaster = {}
986
1102
  local function handleAbilityCastingStartEvent(caster, ability)
987
1103
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
988
1104
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1105
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
989
1106
  local effects = {}
990
1107
  if effectModelPaths ~= nil then
991
1108
  for i = 1, #effectModelPaths do
@@ -994,12 +1111,12 @@ local function handleAbilityCastingStartEvent(caster, ability)
994
1111
  if attachmentPoint == nil or attachmentPoint == "" then
995
1112
  attachmentPoint = "origin"
996
1113
  end
997
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1114
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
998
1115
  end
999
1116
  end
1000
1117
  casterCastingEffectsByCaster[caster] = effects
1001
1118
  end
1002
- local function handleAbilityStopEvent(caster)
1119
+ local function handleAbilityStopCastingEvent(caster)
1003
1120
  local effects = casterCastingEffectsByCaster[caster]
1004
1121
  if effects ~= nil then
1005
1122
  for i = 1, #effects do
@@ -1010,8 +1127,8 @@ local function handleAbilityStopEvent(caster)
1010
1127
  end
1011
1128
  for abilityTypeId in pairs(casterCastingEffectModelPathsByAbilityTypeId) do
1012
1129
  Unit.abilityCastingStartEvent[abilityTypeId]:addListener(4, handleAbilityCastingStartEvent)
1013
- Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1014
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1130
+ Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1131
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1015
1132
  end
1016
1133
  local casterChannelingEffectModelPathsByAbilityTypeId = postcompile(function()
1017
1134
  return mapValues(
@@ -1025,10 +1142,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1025
1142
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1026
1143
  )
1027
1144
  end)
1145
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1146
+ return mapValues(
1147
+ casterChannelingEffectPresetsByAbilityTypeId,
1148
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1149
+ )
1150
+ end)
1028
1151
  local casterChannelingEffectsByCaster = {}
1029
1152
  local function handleAbilityChannelingStartEvent(caster, ability)
1030
1153
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1031
1154
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1155
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1032
1156
  local effects = {}
1033
1157
  if effectModelPaths ~= nil then
1034
1158
  for i = 1, #effectModelPaths do
@@ -1037,23 +1161,89 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1037
1161
  if attachmentPoint == nil or attachmentPoint == "" then
1038
1162
  attachmentPoint = "origin"
1039
1163
  end
1040
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1164
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1041
1165
  end
1042
1166
  end
1043
1167
  casterChannelingEffectsByCaster[caster] = effects
1044
1168
  end
1045
- local function handleAbilityStopEventV2(caster)
1046
- local effects = casterChannelingEffectsByCaster[caster]
1047
- if effects ~= nil then
1048
- for i = 1, #effects do
1049
- effects[i]:destroy()
1169
+ local targetChannelingEffectModelPathsByAbilityTypeId = postcompile(function()
1170
+ return mapValues(
1171
+ targetChannelingEffectPresetsByAbilityTypeId,
1172
+ function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, extractAttachmentPresetInputModelPath) end
1173
+ )
1174
+ end)
1175
+ local targetChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(function()
1176
+ return mapValues(
1177
+ targetChannelingEffectPresetsByAbilityTypeId,
1178
+ function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1179
+ )
1180
+ end)
1181
+ local targetChannelingEffectParametersByAbilityTypeId = postcompile(function()
1182
+ return mapValues(
1183
+ targetChannelingEffectPresetsByAbilityTypeId,
1184
+ function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, "parameters") end
1185
+ )
1186
+ end)
1187
+ local targetChannelingEffectsByCaster = {}
1188
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1189
+ local effectModelPaths = targetChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1190
+ local attachmentPoints = targetChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1191
+ local parameters = targetChannelingEffectParametersByAbilityTypeId[ability.typeId]
1192
+ local effects = {}
1193
+ if effectModelPaths ~= nil then
1194
+ for i = 1, #effectModelPaths do
1195
+ local effectModelPath = effectModelPaths[i]
1196
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1197
+ if attachmentPoint == nil or attachmentPoint == "" then
1198
+ attachmentPoint = "origin"
1199
+ end
1200
+ effects[i] = Effect:create(effectModelPath, target, attachmentPoint, parameters and parameters[i])
1201
+ end
1202
+ end
1203
+ targetChannelingEffectsByCaster[caster] = effects
1204
+ end
1205
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1206
+ local effectModelPaths = targetChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1207
+ local attachmentPoints = targetChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1208
+ local parameters = targetChannelingEffectParametersByAbilityTypeId[ability.typeId]
1209
+ local effects = {}
1210
+ if effectModelPaths ~= nil then
1211
+ for i = 1, #effectModelPaths do
1212
+ local effectModelPath = effectModelPaths[i]
1213
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1214
+ if attachmentPoint == nil or attachmentPoint == "" then
1215
+ attachmentPoint = "origin"
1216
+ end
1217
+ effects[i] = Effect:create(effectModelPath, x, y, parameters and parameters[i])
1218
+ end
1219
+ end
1220
+ targetChannelingEffectsByCaster[caster] = effects
1221
+ end
1222
+ local function handleAbilityStopChannelingEvent(caster)
1223
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1224
+ if casterEffects ~= nil then
1225
+ for i = 1, #casterEffects do
1226
+ casterEffects[i]:destroy()
1050
1227
  end
1051
1228
  casterChannelingEffectsByCaster[caster] = nil
1052
1229
  end
1230
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1231
+ if targetEffects ~= nil then
1232
+ for i = 1, #targetEffects do
1233
+ targetEffects[i]:destroy()
1234
+ end
1235
+ targetChannelingEffectsByCaster[caster] = nil
1236
+ end
1053
1237
  end
1054
1238
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1055
1239
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1056
- Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1057
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1240
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1241
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1242
+ end
1243
+ for abilityTypeId in pairs(targetChannelingEffectModelPathsByAbilityTypeId) do
1244
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1245
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1246
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1247
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1058
1248
  end
1059
1249
  return ____exports