warscript 0.0.1-dev.7a0548b → 0.0.1-dev.7a5b782

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 (396) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/dummy.lua +4 -2
  4. package/core/types/effect.d.ts +12 -4
  5. package/core/types/effect.lua +67 -104
  6. package/core/types/frame.d.ts +1 -0
  7. package/core/types/frame.lua +136 -58
  8. package/core/types/handle.lua +9 -9
  9. package/core/types/item.d.ts +1 -0
  10. package/core/types/item.lua +1 -0
  11. package/core/types/player.d.ts +18 -1
  12. package/core/types/player.lua +76 -26
  13. package/core/types/playerCamera.d.ts +2 -0
  14. package/core/types/playerCamera.lua +123 -5
  15. package/core/types/playerColor.lua +4 -3
  16. package/core/types/sound.d.ts +1 -1
  17. package/core/types/sound.lua +19 -9
  18. package/core/types/tileCell.d.ts +11 -1
  19. package/core/types/tileCell.lua +97 -0
  20. package/core/types/timer.d.ts +9 -8
  21. package/core/types/timer.lua +45 -23
  22. package/core/types/unit.d.ts +5 -0
  23. package/core/types/unit.lua +5 -0
  24. package/core/util.d.ts +3 -1
  25. package/core/util.lua +109 -3
  26. package/decl/native.d.ts +1718 -964
  27. package/destroyable.d.ts +1 -0
  28. package/destroyable.lua +9 -0
  29. package/engine/behavior.d.ts +14 -1
  30. package/engine/behavior.lua +230 -70
  31. package/engine/behaviour/ability/apply-buff.lua +5 -5
  32. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  33. package/engine/behaviour/ability/damage.d.ts +10 -3
  34. package/engine/behaviour/ability/damage.lua +41 -49
  35. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  36. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  37. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  38. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  39. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  40. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  41. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  42. package/engine/behaviour/ability/restore-mana.lua +6 -6
  43. package/engine/behaviour/ability.d.ts +16 -6
  44. package/engine/behaviour/ability.lua +69 -21
  45. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  46. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  47. package/engine/behaviour/unit.d.ts +40 -3
  48. package/engine/behaviour/unit.lua +270 -6
  49. package/engine/buff.d.ts +75 -28
  50. package/engine/buff.lua +433 -196
  51. package/engine/index.d.ts +2 -1
  52. package/engine/internal/ability.d.ts +14 -1
  53. package/engine/internal/ability.lua +113 -44
  54. package/engine/internal/item/ability.lua +63 -11
  55. package/engine/internal/item/fields.d.ts +12 -0
  56. package/engine/internal/item/fields.lua +33 -0
  57. package/engine/internal/item/owner-cache.d.ts +5 -0
  58. package/engine/internal/item/owner-cache.lua +4 -0
  59. package/engine/internal/item+owner.d.ts +2 -0
  60. package/engine/internal/item+owner.lua +37 -8
  61. package/engine/internal/item.d.ts +32 -16
  62. package/engine/internal/item.lua +257 -82
  63. package/engine/internal/mechanics/cast-ability.lua +6 -3
  64. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  65. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  66. package/engine/internal/misc/frame-coordinates.lua +21 -0
  67. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  68. package/engine/internal/misc/get-terrain-z.lua +11 -0
  69. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  70. package/engine/internal/misc/player-local-handle.lua +5 -0
  71. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  72. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  73. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  74. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  75. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  76. package/engine/internal/object-data/health-bonus.lua +16 -0
  77. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  78. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  79. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  80. package/engine/internal/object-data/mana-bonus.lua +16 -0
  81. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  82. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  83. package/engine/internal/unit/ability.d.ts +35 -0
  84. package/engine/internal/unit/ability.lua +113 -12
  85. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  86. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  87. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  88. package/engine/internal/unit/allowed-targets.lua +9 -1
  89. package/engine/internal/unit/appearance.d.ts +15 -0
  90. package/engine/internal/unit/appearance.lua +85 -0
  91. package/engine/internal/unit/attributes.d.ts +17 -0
  92. package/engine/internal/unit/attributes.lua +46 -0
  93. package/engine/internal/unit/bonus.d.ts +14 -0
  94. package/engine/internal/unit/bonus.lua +102 -8
  95. package/engine/internal/unit/buff.d.ts +2 -2
  96. package/engine/internal/unit/buff.lua +34 -19
  97. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  98. package/engine/internal/unit/equipment-inventory.lua +233 -0
  99. package/engine/internal/unit/expiration-timer.lua +1 -1
  100. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  101. package/engine/internal/unit/extended-inventory.lua +99 -0
  102. package/engine/internal/unit/fly-height.d.ts +7 -0
  103. package/engine/internal/unit/fly-height.lua +20 -0
  104. package/engine/internal/unit/ignore-events-items.lua +10 -1
  105. package/engine/internal/unit/interrupts.d.ts +12 -0
  106. package/engine/internal/unit/interrupts.lua +28 -0
  107. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  108. package/engine/internal/unit/inventory.lua +87 -0
  109. package/engine/internal/unit/item-container.d.ts +25 -0
  110. package/engine/internal/unit/item-container.lua +11 -0
  111. package/engine/internal/unit/item-order-events.d.ts +17 -0
  112. package/engine/internal/unit/item-order-events.lua +67 -0
  113. package/engine/internal/unit/item-slot.d.ts +27 -0
  114. package/engine/internal/unit/item-slot.lua +92 -0
  115. package/engine/internal/unit/main-selected.lua +12 -27
  116. package/engine/internal/unit/order.d.ts +20 -0
  117. package/engine/internal/unit/order.lua +136 -0
  118. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  119. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  120. package/engine/internal/unit/range-event.d.ts +12 -0
  121. package/engine/internal/unit/range-event.lua +90 -0
  122. package/engine/internal/unit/scale.d.ts +7 -0
  123. package/engine/internal/unit/scale.lua +20 -0
  124. package/engine/internal/unit+ability.d.ts +2 -1
  125. package/engine/internal/unit+ability.lua +73 -3
  126. package/engine/internal/unit+bonus.lua +3 -3
  127. package/engine/internal/unit+damage.d.ts +11 -11
  128. package/engine/internal/unit+damage.lua +43 -14
  129. package/engine/internal/unit+rally.lua +9 -31
  130. package/engine/internal/unit+spellSteal.lua +1 -2
  131. package/engine/internal/unit-missile-data.lua +58 -32
  132. package/engine/internal/unit-missile-launch.lua +65 -27
  133. package/engine/internal/unit.d.ts +41 -36
  134. package/engine/internal/unit.lua +396 -328
  135. package/engine/local-client.d.ts +28 -0
  136. package/engine/local-client.lua +324 -54
  137. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  138. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  139. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  140. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  141. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  142. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  143. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  144. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  145. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  146. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  147. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  148. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  149. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  150. package/engine/object-data/auxiliary/item-class.lua +2 -0
  151. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  152. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  153. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  154. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  155. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  156. package/engine/object-data/auxiliary/order-type.lua +2 -0
  157. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  158. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  159. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  160. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  161. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  162. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  163. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  164. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  165. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  166. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  167. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  168. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  169. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  170. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  171. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  172. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  173. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  174. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  175. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  176. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  177. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  178. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  179. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  180. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  181. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  182. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  183. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  184. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  185. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  186. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  187. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  188. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  189. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  190. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  191. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  192. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  193. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  194. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  195. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  196. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  197. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  198. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  199. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  200. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  201. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  202. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  203. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  204. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  205. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  206. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  207. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  208. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  209. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  210. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  211. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  212. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  213. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  214. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  215. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  216. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  217. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  218. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  219. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  220. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  221. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  222. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  223. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  224. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  225. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  226. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  227. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  228. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  229. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  230. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  231. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  232. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  233. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  234. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  235. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  236. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  237. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  238. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  239. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  240. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  241. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  242. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  243. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  244. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  245. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  246. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  247. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  248. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  249. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  250. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  251. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  252. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  253. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  254. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  255. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  256. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  257. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  258. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  259. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  260. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  261. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  262. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  263. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  264. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  265. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  266. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  267. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  268. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  269. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  270. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  271. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  272. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  273. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  274. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  275. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  276. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  277. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  278. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  279. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  280. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  281. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  282. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  283. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  284. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  285. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  286. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  287. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  288. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  289. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  290. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  291. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  292. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  293. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  294. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  295. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  296. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  297. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  298. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  299. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  300. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  301. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  302. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  303. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  304. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  305. package/engine/object-data/entry/ability-type/web.lua +52 -0
  306. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  307. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  308. package/engine/object-data/entry/ability-type.d.ts +34 -15
  309. package/engine/object-data/entry/ability-type.lua +275 -17
  310. package/engine/object-data/entry/buff-type/applicable.lua +113 -104
  311. package/engine/object-data/entry/buff-type.d.ts +10 -12
  312. package/engine/object-data/entry/buff-type.lua +37 -27
  313. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  314. package/engine/object-data/entry/destructible-type.lua +181 -0
  315. package/engine/object-data/entry/item-type.d.ts +18 -3
  316. package/engine/object-data/entry/item-type.lua +84 -0
  317. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  318. package/engine/object-data/entry/lightning-type.lua +1 -1
  319. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  320. package/engine/object-data/entry/unit-type.d.ts +64 -6
  321. package/engine/object-data/entry/unit-type.lua +531 -85
  322. package/engine/object-data/entry/upgrade.d.ts +2 -2
  323. package/engine/object-data/entry.d.ts +6 -1
  324. package/engine/object-data/entry.lua +8 -0
  325. package/engine/object-field/ability.d.ts +4 -4
  326. package/engine/object-field/ability.lua +9 -8
  327. package/engine/object-field/item.d.ts +22 -0
  328. package/engine/object-field/item.lua +118 -0
  329. package/engine/object-field/unit.d.ts +72 -3
  330. package/engine/object-field/unit.lua +268 -7
  331. package/engine/object-field.d.ts +26 -7
  332. package/engine/object-field.lua +360 -119
  333. package/engine/random.d.ts +10 -0
  334. package/engine/random.lua +21 -0
  335. package/engine/standard/entries/ability-type.d.ts +3102 -7
  336. package/engine/standard/entries/ability-type.lua +0 -6
  337. package/engine/standard/entries/buff-type.d.ts +48 -0
  338. package/engine/standard/entries/buff-type.lua +46 -0
  339. package/engine/standard/entries/item-type.d.ts +1299 -0
  340. package/engine/standard/entries/item-type.lua +2 -0
  341. package/engine/standard/entries/lightning-type.d.ts +42 -15
  342. package/engine/standard/entries/lightning-type.lua +0 -14
  343. package/engine/standard/entries/unit-type.d.ts +5 -0
  344. package/engine/standard/entries/unit-type.lua +5 -0
  345. package/engine/standard/fields/ability.d.ts +2 -2
  346. package/engine/standard/fields/ability.lua +2 -2
  347. package/engine/standard/fields/item.d.ts +4 -0
  348. package/engine/standard/fields/item.lua +6 -0
  349. package/engine/standard/fields/unit.d.ts +12 -0
  350. package/engine/standard/fields/unit.lua +20 -0
  351. package/engine/synchronization.d.ts +11 -0
  352. package/engine/synchronization.lua +77 -0
  353. package/engine/text-tag.d.ts +36 -2
  354. package/engine/text-tag.lua +250 -10
  355. package/engine/unit.d.ts +11 -1
  356. package/engine/unit.lua +11 -1
  357. package/event.d.ts +1 -1
  358. package/lualib_bundle.lua +1 -1
  359. package/math.d.ts +2 -0
  360. package/math.lua +14 -0
  361. package/net/socket.lua +1 -1
  362. package/network.lua +25 -1
  363. package/objutil/buff.lua +12 -11
  364. package/objutil/object.lua +1 -1
  365. package/operation.d.ts +8 -1
  366. package/operation.lua +38 -18
  367. package/package.json +3 -23
  368. package/patch-lua.lua +15 -0
  369. package/patch-lualib.lua +1 -1
  370. package/utility/arrays.d.ts +3 -0
  371. package/utility/arrays.lua +23 -0
  372. package/utility/callback-array.d.ts +17 -0
  373. package/utility/callback-array.lua +61 -0
  374. package/utility/functions.d.ts +8 -0
  375. package/utility/functions.lua +13 -0
  376. package/utility/linked-map.d.ts +35 -0
  377. package/utility/linked-map.lua +107 -0
  378. package/utility/linked-set.d.ts +5 -1
  379. package/utility/linked-set.lua +49 -1
  380. package/utility/lua-maps.d.ts +15 -2
  381. package/utility/lua-maps.lua +53 -2
  382. package/utility/lua-sets.d.ts +2 -0
  383. package/utility/lua-sets.lua +7 -0
  384. package/utility/random.d.ts +102 -0
  385. package/utility/random.lua +273 -0
  386. package/utility/records.lua +20 -1
  387. package/utility/types.d.ts +3 -0
  388. package/utility/unordered-map.d.ts +27 -0
  389. package/utility/unordered-map.lua +99 -0
  390. package/core/types/order.d.ts +0 -25
  391. package/core/types/order.lua +0 -55
  392. package/engine/internal/unit/item.lua +0 -78
  393. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  394. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  395. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  396. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,78 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.WitheringFireAbilityType = __TS__Class()
9
+ local WitheringFireAbilityType = ____exports.WitheringFireAbilityType
10
+ WitheringFireAbilityType.name = "WitheringFireAbilityType"
11
+ __TS__ClassExtends(WitheringFireAbilityType, AbilityType)
12
+ WitheringFireAbilityType.BASE_ID = fourCC("AUwf")
13
+ __TS__SetDescriptor(
14
+ WitheringFireAbilityType.prototype,
15
+ "maximumCharges",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("uwf1")
19
+ end,
20
+ set = function(self, maximumCharges)
21
+ self:setNumberLevelField("uwf1", maximumCharges)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ __TS__SetDescriptor(
27
+ WitheringFireAbilityType.prototype,
28
+ "chargeRegenerationTime",
29
+ {
30
+ get = function(self)
31
+ return self:getNumberLevelField("uwf2")
32
+ end,
33
+ set = function(self, chargeRegenerationTime)
34
+ self:setNumberLevelField("uwf2", chargeRegenerationTime)
35
+ end
36
+ },
37
+ true
38
+ )
39
+ __TS__SetDescriptor(
40
+ WitheringFireAbilityType.prototype,
41
+ "damage",
42
+ {
43
+ get = function(self)
44
+ return self:getNumberLevelField("uwf3")
45
+ end,
46
+ set = function(self, damage)
47
+ self:setNumberLevelField("uwf3", damage)
48
+ end
49
+ },
50
+ true
51
+ )
52
+ __TS__SetDescriptor(
53
+ WitheringFireAbilityType.prototype,
54
+ "targetArmorReduction",
55
+ {
56
+ get = function(self)
57
+ return self:getNumberLevelField("uwf4")
58
+ end,
59
+ set = function(self, targetArmorReduction)
60
+ self:setNumberLevelField("uwf4", targetArmorReduction)
61
+ end
62
+ },
63
+ true
64
+ )
65
+ __TS__SetDescriptor(
66
+ WitheringFireAbilityType.prototype,
67
+ "cooldownReductionOnAutoAttack",
68
+ {
69
+ get = function(self)
70
+ return self:getNumberLevelField("uwf5")
71
+ end,
72
+ set = function(self, cooldownReductionOnAutoAttack)
73
+ self:setNumberLevelField("uwf5", cooldownReductionOnAutoAttack)
74
+ end
75
+ },
76
+ true
77
+ )
78
+ return ____exports
@@ -3,17 +3,18 @@ import "../../internal/unit/ability";
3
3
  import { TupleOf } from "../../../utility/types";
4
4
  import { AnimationName } from "../auxiliary/animation-name";
5
5
  import { AnimationQualifier } from "../auxiliary/animation-qualifier";
6
- import { AttachmentPreset, AttachmentPresetInput } from "../auxiliary/attachment-preset";
6
+ import { AttachmentPoint, AttachmentPointInput, AttachmentPresetInput, EffectPresetWithParameters, EffectPresetWithParametersInput } from "../auxiliary/attachment-preset";
7
7
  import { CombatClassifications } from "../auxiliary/combat-classification";
8
8
  import { Race } from "../auxiliary/race";
9
9
  import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency";
10
- import { ObjectDataEntry, ObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
10
+ import { ObjectDataEntry, CustomObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
11
11
  import { BuffTypeId } from "./buff-type";
12
12
  import { LightningTypeId } from "./lightning-type";
13
13
  import { SoundPresetId } from "./sound-preset";
14
- export type AbilityTypeId = ObjectDataEntryId & number & {
14
+ import { StandardAbilityTypeId } from "../../standard/entries/ability-type";
15
+ export type AbilityTypeId = (CustomObjectDataEntryId & number & {
15
16
  readonly __abilityTypeId: unique symbol;
16
- };
17
+ }) | StandardAbilityTypeId;
17
18
  export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId> {
18
19
  private static readonly idGenerator;
19
20
  protected static generateId(): number;
@@ -27,11 +28,11 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
27
28
  set buttonPositionX(buttonPositionX: number);
28
29
  get buttonPositionY(): number;
29
30
  set buttonPositionY(buttonPositionY: number);
30
- get casterCastingEffectPresets(): AttachmentPreset[];
31
- set casterCastingEffectPresets(casterCastingEffectPresets: AttachmentPresetInput[]);
32
- get casterChannelingEffectPresets(): AttachmentPreset[];
33
- set casterChannelingEffectPresets(casterChannelingEffectPresets: AttachmentPresetInput[]);
34
- get casterAttachmentPresets(): TupleOf<AttachmentPreset, 0 | 1 | 2>;
31
+ get casterCastingEffectPresets(): EffectPresetWithParameters[];
32
+ set casterCastingEffectPresets(casterCastingEffectPresets: EffectPresetWithParametersInput[]);
33
+ get casterChannelingEffectPresets(): EffectPresetWithParameters[];
34
+ set casterChannelingEffectPresets(casterChannelingEffectPresets: EffectPresetWithParametersInput[]);
35
+ get casterAttachmentPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2>;
35
36
  set casterAttachmentPresets(casterAttachmentPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2>);
36
37
  get effectModelPaths(): string[];
37
38
  set effectModelPaths(effectModelPaths: string[]);
@@ -41,6 +42,8 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
41
42
  set iconPathSD(iconPathSD: string);
42
43
  get iconPathHD(): string;
43
44
  set iconPathHD(iconPathHD: string);
45
+ get iconPathDE(): string;
46
+ set iconPathDE(iconPathDE: string);
44
47
  get isButtonVisible(): boolean;
45
48
  set isButtonVisible(isButtonVisible: boolean);
46
49
  get isMissileHoming(): boolean;
@@ -59,20 +62,36 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
59
62
  set missileModelPathSD(missileModelPathSD: string);
60
63
  get missileModelPathHD(): string;
61
64
  set missileModelPathHD(missileModelPathHD: string);
65
+ get missileModelPathDE(): string;
66
+ set missileModelPathDE(missileModelPathDE: string);
62
67
  get missileMovementArc(): number;
63
68
  set missileMovementArc(missileMovementArc: number);
64
69
  get missileMovementSpeed(): number;
65
70
  set missileMovementSpeed(missileMovementSpeed: number);
66
- get specialAttachmentPreset(): AttachmentPreset | undefined;
67
- set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
68
- get targetCastingEffectPresets(): AttachmentPreset[];
71
+ /** Model paths of the special art (`asat`); Flame Strike, for one, uses three. */
72
+ get specialEffectModelPaths(): string[];
73
+ set specialEffectModelPaths(specialEffectModelPaths: string[]);
74
+ /** Where the special art attaches (`aspt`), shared by all its models. */
75
+ get specialEffectAttachmentPoint(): AttachmentPoint;
76
+ set specialEffectAttachmentPoint(specialEffectAttachmentPoint: AttachmentPointInput);
77
+ get targetCastingEffectPresets(): EffectPresetWithParameters[];
69
78
  set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
70
- get targetEffectPresets(): TupleOf<AttachmentPreset, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
79
+ get targetChannelingEffectPresets(): EffectPresetWithParameters[];
80
+ set targetChannelingEffectPresets(targetChannelingEffectPresets: EffectPresetWithParametersInput[]);
81
+ get targetChannelingEffectPresetsSD(): EffectPresetWithParameters[];
82
+ set targetChannelingEffectPresetsSD(targetChannelingEffectPresetsSD: EffectPresetWithParametersInput[]);
83
+ get targetChannelingEffectPresetsHD(): EffectPresetWithParameters[];
84
+ set targetChannelingEffectPresetsHD(targetChannelingEffectPresetsHD: EffectPresetWithParametersInput[]);
85
+ get targetChannelingEffectPresetsDE(): EffectPresetWithParameters[];
86
+ set targetChannelingEffectPresetsDE(targetChannelingEffectPresetsDE: EffectPresetWithParametersInput[]);
87
+ get targetEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
71
88
  set targetEffectPresets(targetEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
72
- get targetEffectPresetsSD(): TupleOf<AttachmentPreset, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
89
+ get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
73
90
  set targetEffectPresetsSD(targetEffectPresetsSD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
74
- get targetEffectPresetsHD(): TupleOf<AttachmentPreset, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
91
+ get targetEffectPresetsHD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
75
92
  set targetEffectPresetsHD(targetEffectPresetsHD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
93
+ get targetEffectPresetsDE(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
94
+ set targetEffectPresetsDE(targetEffectPresetsDE: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
76
95
  get turnOffButtonPositionX(): number;
77
96
  set turnOffButtonPositionX(buttonPositionX: number);
78
97
  get turnOffButtonPositionY(): number;
@@ -3,6 +3,7 @@ local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
6
7
  local ____exports = {}
7
8
  local ____unit = require("engine.internal.unit")
8
9
  local Unit = ____unit.Unit
@@ -18,9 +19,11 @@ local array = ____arrays.array
18
19
  local map = ____arrays.map
19
20
  local mapIndexed = ____arrays.mapIndexed
20
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
22
+ local attachmentPointToNodeFQN = ____attachment_2Dpreset.attachmentPointToNodeFQN
21
23
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
22
24
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
23
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
25
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
26
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
24
27
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
25
28
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
26
29
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -35,13 +38,22 @@ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilit
35
38
  local ____upgrade = require("engine.object-data.entry.upgrade")
36
39
  local Upgrade = ____upgrade.Upgrade
37
40
  local ____sound = require("core.types.sound")
41
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
38
42
  local Sound3D = ____sound.Sound3D
39
43
  local SoundSettings = ____sound.SoundSettings
44
+ local ____lua_2Dsets = require("utility.lua-sets")
45
+ local luaSetOf = ____lua_2Dsets.luaSetOf
46
+ local ____local_2Dclient = require("engine.local-client")
47
+ local LocalClient = ____local_2Dclient.LocalClient
40
48
  local castAnimationFQNByAbilityTypeId = {}
41
49
  local isButtonVisibleFalseAbilityTypes = {}
42
50
  local casterCastingEffectPresetsByAbilityTypeId = {}
43
51
  local casterChannelingEffectPresetsByAbilityTypeId = {}
44
52
  local targetCastingEffectPresetsByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
55
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
56
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
45
57
  local targetEffectSoundPresetByAbilityTypeId = {}
46
58
  ____exports.AbilityType = __TS__Class()
47
59
  local AbilityType = ____exports.AbilityType
@@ -118,7 +130,7 @@ __TS__SetDescriptor(
118
130
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
119
131
  end,
120
132
  set = function(self, casterCastingEffectPresets)
121
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
133
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
122
134
  end
123
135
  },
124
136
  true
@@ -131,7 +143,7 @@ __TS__SetDescriptor(
131
143
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
132
144
  end,
133
145
  set = function(self, casterChannelingEffectPresets)
134
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
146
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
135
147
  end
136
148
  },
137
149
  true
@@ -201,6 +213,19 @@ __TS__SetDescriptor(
201
213
  },
202
214
  true
203
215
  )
216
+ __TS__SetDescriptor(
217
+ AbilityType.prototype,
218
+ "iconPathDE",
219
+ {
220
+ get = function(self)
221
+ return self:getStringField("aart:de")
222
+ end,
223
+ set = function(self, iconPathDE)
224
+ self:setStringField("aart:de", iconPathDE)
225
+ end
226
+ },
227
+ true
228
+ )
204
229
  __TS__SetDescriptor(
205
230
  AbilityType.prototype,
206
231
  "isButtonVisible",
@@ -323,6 +348,19 @@ __TS__SetDescriptor(
323
348
  },
324
349
  true
325
350
  )
351
+ __TS__SetDescriptor(
352
+ AbilityType.prototype,
353
+ "missileModelPathDE",
354
+ {
355
+ get = function(self)
356
+ return self:getStringField("amat:de")
357
+ end,
358
+ set = function(self, missileModelPathDE)
359
+ self:setStringField("amat:de", missileModelPathDE)
360
+ end
361
+ },
362
+ true
363
+ )
326
364
  __TS__SetDescriptor(
327
365
  AbilityType.prototype,
328
366
  "missileMovementArc",
@@ -351,13 +389,30 @@ __TS__SetDescriptor(
351
389
  )
352
390
  __TS__SetDescriptor(
353
391
  AbilityType.prototype,
354
- "specialAttachmentPreset",
392
+ "specialEffectModelPaths",
355
393
  {
356
394
  get = function(self)
357
- return self:getAttachmentPresetField("asat", "aspt")
395
+ return self:getStringsField("asat")
358
396
  end,
359
- set = function(self, specialAttachmentPreset)
360
- self:setAttachmentPresetField("asat", "aspt", specialAttachmentPreset)
397
+ set = function(self, specialEffectModelPaths)
398
+ self:setStringsField("asat", specialEffectModelPaths)
399
+ end
400
+ },
401
+ true
402
+ )
403
+ __TS__SetDescriptor(
404
+ AbilityType.prototype,
405
+ "specialEffectAttachmentPoint",
406
+ {
407
+ get = function(self)
408
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField("aspt"))
409
+ return {nodeName = nodeName, nodeQualifiers = nodeQualifiers}
410
+ end,
411
+ set = function(self, specialEffectAttachmentPoint)
412
+ self:setStringField(
413
+ "aspt",
414
+ attachmentPointToNodeFQN(specialEffectAttachmentPoint)
415
+ )
361
416
  end
362
417
  },
363
418
  true
@@ -370,7 +425,59 @@ __TS__SetDescriptor(
370
425
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
371
426
  end,
372
427
  set = function(self, targetCastingEffectPresets)
373
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
428
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
429
+ end
430
+ },
431
+ true
432
+ )
433
+ __TS__SetDescriptor(
434
+ AbilityType.prototype,
435
+ "targetChannelingEffectPresets",
436
+ {
437
+ get = function(self)
438
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
439
+ end,
440
+ set = function(self, targetChannelingEffectPresets)
441
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
442
+ end
443
+ },
444
+ true
445
+ )
446
+ __TS__SetDescriptor(
447
+ AbilityType.prototype,
448
+ "targetChannelingEffectPresetsSD",
449
+ {
450
+ get = function(self)
451
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
452
+ end,
453
+ set = function(self, targetChannelingEffectPresetsSD)
454
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
455
+ end
456
+ },
457
+ true
458
+ )
459
+ __TS__SetDescriptor(
460
+ AbilityType.prototype,
461
+ "targetChannelingEffectPresetsHD",
462
+ {
463
+ get = function(self)
464
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
465
+ end,
466
+ set = function(self, targetChannelingEffectPresetsHD)
467
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
468
+ end
469
+ },
470
+ true
471
+ )
472
+ __TS__SetDescriptor(
473
+ AbilityType.prototype,
474
+ "targetChannelingEffectPresetsDE",
475
+ {
476
+ get = function(self)
477
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
478
+ end,
479
+ set = function(self, targetChannelingEffectPresetsDE)
480
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
374
481
  end
375
482
  },
376
483
  true
@@ -456,6 +563,33 @@ __TS__SetDescriptor(
456
563
  },
457
564
  true
458
565
  )
566
+ __TS__SetDescriptor(
567
+ AbilityType.prototype,
568
+ "targetEffectPresetsDE",
569
+ {
570
+ get = function(self)
571
+ return self:getAttachmentPresetListField(
572
+ "atat:de",
573
+ array(
574
+ 6,
575
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
576
+ )
577
+ )
578
+ end,
579
+ set = function(self, targetEffectPresetsDE)
580
+ self:setAttachmentPresetListField(
581
+ "atat:de",
582
+ array(
583
+ 6,
584
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
585
+ ),
586
+ "atac:de",
587
+ targetEffectPresetsDE
588
+ )
589
+ end
590
+ },
591
+ true
592
+ )
459
593
  __TS__SetDescriptor(
460
594
  AbilityType.prototype,
461
595
  "turnOffButtonPositionX",
@@ -978,9 +1112,7 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
978
1112
  4,
979
1113
  function(caster, ability)
980
1114
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
981
- Timer:run(function()
982
- caster:playAnimation(animationFQN)
983
- end)
1115
+ Timer:run(caster, "playAnimation", animationFQN)
984
1116
  end
985
1117
  end
986
1118
  )
@@ -1005,6 +1137,13 @@ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEf
1005
1137
  )
1006
1138
  end
1007
1139
  end
1140
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1141
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1142
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1143
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1144
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1145
+ end
1146
+ end)
1008
1147
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
1009
1148
  return mapValues(
1010
1149
  casterCastingEffectPresetsByAbilityTypeId,
@@ -1017,10 +1156,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
1017
1156
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1018
1157
  )
1019
1158
  end)
1159
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1160
+ return mapValues(
1161
+ casterCastingEffectPresetsByAbilityTypeId,
1162
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1163
+ )
1164
+ end)
1020
1165
  local casterCastingEffectsByCaster = {}
1021
1166
  local function handleAbilityCastingStartEvent(caster, ability)
1022
1167
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
1023
1168
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1169
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
1024
1170
  local effects = {}
1025
1171
  if effectModelPaths ~= nil then
1026
1172
  for i = 1, #effectModelPaths do
@@ -1029,7 +1175,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
1029
1175
  if attachmentPoint == nil or attachmentPoint == "" then
1030
1176
  attachmentPoint = "origin"
1031
1177
  end
1032
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1178
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1033
1179
  end
1034
1180
  end
1035
1181
  casterCastingEffectsByCaster[caster] = effects
@@ -1060,10 +1206,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1060
1206
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1061
1207
  )
1062
1208
  end)
1209
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1210
+ return mapValues(
1211
+ casterChannelingEffectPresetsByAbilityTypeId,
1212
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1213
+ )
1214
+ end)
1063
1215
  local casterChannelingEffectsByCaster = {}
1064
1216
  local function handleAbilityChannelingStartEvent(caster, ability)
1065
1217
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1066
1218
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1219
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1067
1220
  local effects = {}
1068
1221
  if effectModelPaths ~= nil then
1069
1222
  for i = 1, #effectModelPaths do
@@ -1072,23 +1225,128 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1072
1225
  if attachmentPoint == nil or attachmentPoint == "" then
1073
1226
  attachmentPoint = "origin"
1074
1227
  end
1075
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1228
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1076
1229
  end
1077
1230
  end
1078
1231
  casterChannelingEffectsByCaster[caster] = effects
1079
1232
  end
1233
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1234
+ local function toData(presets)
1235
+ if presets == nil then
1236
+ return nil
1237
+ end
1238
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1239
+ local parameters = map(presets, "parameters")
1240
+ return {
1241
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1242
+ attachmentPoints = __TS__ArraySome(
1243
+ attachmentPoints,
1244
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1245
+ ) and attachmentPoints or nil,
1246
+ parameters = __TS__ArraySome(
1247
+ presets,
1248
+ function(____, preset) return preset.parameters ~= nil end
1249
+ ) and parameters or nil
1250
+ }
1251
+ end
1252
+ local abilityTypeIds = {}
1253
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1254
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1255
+ abilityTypeIds[abilityTypeId] = true
1256
+ end
1257
+ end
1258
+ local result = {}
1259
+ for abilityTypeId in pairs(abilityTypeIds) do
1260
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1261
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1262
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1263
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1264
+ local ____math_max_8 = math.max
1265
+ local ____opt_0 = presetsSD or presets
1266
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1267
+ local ____opt_2 = presetsHD or presets
1268
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1269
+ local ____opt_4 = presetsDE or presets
1270
+ result[abilityTypeId] = {
1271
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1272
+ data = toData(presets),
1273
+ dataSD = toData(presetsSD),
1274
+ dataHD = toData(presetsHD),
1275
+ dataDE = toData(presetsDE)
1276
+ }
1277
+ end
1278
+ return result
1279
+ end)
1280
+ local targetChannelingEffectsByCaster = {}
1281
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1282
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1283
+ if effectsData == nil then
1284
+ return
1285
+ end
1286
+ local graphicsMode = LocalClient.graphicsMode
1287
+ local ____temp_10
1288
+ if graphicsMode == 0 then
1289
+ ____temp_10 = effectsData.dataSD
1290
+ else
1291
+ local ____temp_9
1292
+ if graphicsMode == 1 then
1293
+ ____temp_9 = effectsData.dataHD
1294
+ else
1295
+ ____temp_9 = effectsData.dataDE
1296
+ end
1297
+ ____temp_10 = ____temp_9
1298
+ end
1299
+ local data = ____temp_10 or effectsData.data
1300
+ local modelPaths = data and data.modelPaths
1301
+ local attachmentPoints = data and data.attachmentPoints
1302
+ local parameters = data and data.parameters
1303
+ local effects = {}
1304
+ for i = 1, effectsData.effectCount do
1305
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1306
+ local effectParameters = parameters and parameters[i]
1307
+ if type(xOrWidget) == "number" then
1308
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1309
+ else
1310
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1311
+ if attachmentPoint == nil or attachmentPoint == "" then
1312
+ attachmentPoint = "origin"
1313
+ end
1314
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1315
+ end
1316
+ end
1317
+ targetChannelingEffectsByCaster[caster] = effects
1318
+ end
1319
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1320
+ createTargetChannelingEffects(caster, ability.typeId, target)
1321
+ end
1322
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1323
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1324
+ end
1080
1325
  local function handleAbilityStopChannelingEvent(caster)
1081
- local effects = casterChannelingEffectsByCaster[caster]
1082
- if effects ~= nil then
1083
- for i = 1, #effects do
1084
- effects[i]:destroy()
1326
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1327
+ if casterEffects ~= nil then
1328
+ for i = 1, #casterEffects do
1329
+ casterEffects[i]:destroy()
1085
1330
  end
1086
1331
  casterChannelingEffectsByCaster[caster] = nil
1087
1332
  end
1333
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1334
+ if targetEffects ~= nil then
1335
+ for i = 1, #targetEffects do
1336
+ targetEffects[i]:destroy()
1337
+ end
1338
+ targetChannelingEffectsByCaster[caster] = nil
1339
+ end
1088
1340
  end
1089
1341
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1090
1342
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1091
1343
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1092
1344
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1093
1345
  end
1346
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1347
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1348
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1349
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1350
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1351
+ end
1094
1352
  return ____exports