warscript 0.0.1-dev.b026cc2 → 0.0.1-dev.b1ce140

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