warscript 0.0.1-dev.bad60be → 0.0.1-dev.bc4cd10

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 (368) hide show
  1. package/attributes.d.ts +1 -0
  2. package/attributes.lua +9 -0
  3. package/core/dummy.lua +4 -2
  4. package/core/types/effect.d.ts +11 -1
  5. package/core/types/effect.lua +43 -77
  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 +14 -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 +3 -1
  21. package/core/types/timer.lua +27 -2
  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 +711 -11
  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 +4 -4
  32. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  33. package/engine/behaviour/ability/damage.d.ts +4 -0
  34. package/engine/behaviour/ability/damage.lua +19 -15
  35. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  36. package/engine/behaviour/ability/emulate-impact.lua +7 -5
  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 +13 -6
  44. package/engine/behaviour/ability.lua +56 -1
  45. package/engine/behaviour/unit/stun-immunity.d.ts +9 -5
  46. package/engine/behaviour/unit/stun-immunity.lua +17 -7
  47. package/engine/behaviour/unit.d.ts +16 -5
  48. package/engine/behaviour/unit.lua +135 -27
  49. package/engine/buff.d.ts +73 -27
  50. package/engine/buff.lua +424 -193
  51. package/engine/index.d.ts +2 -1
  52. package/engine/internal/ability.d.ts +7 -1
  53. package/engine/internal/ability.lua +90 -47
  54. package/engine/internal/item/ability.lua +2 -1
  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 +27 -14
  62. package/engine/internal/item.lua +185 -82
  63. package/engine/internal/mechanics/cast-ability.lua +6 -3
  64. package/engine/internal/misc/frame-coordinates.lua +21 -0
  65. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  66. package/engine/internal/misc/get-terrain-z.lua +11 -0
  67. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  68. package/engine/internal/misc/player-local-handle.lua +5 -0
  69. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  70. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  71. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  72. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  73. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  74. package/engine/internal/object-data/health-bonus.lua +16 -0
  75. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  76. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  77. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  78. package/engine/internal/object-data/mana-bonus.lua +16 -0
  79. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  80. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  81. package/engine/internal/unit/ability.d.ts +14 -14
  82. package/engine/internal/unit/ability.lua +86 -47
  83. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  84. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  85. package/engine/internal/unit/appearance.d.ts +15 -0
  86. package/engine/internal/unit/appearance.lua +85 -0
  87. package/engine/internal/unit/attributes.d.ts +17 -0
  88. package/engine/internal/unit/attributes.lua +46 -0
  89. package/engine/internal/unit/bonus.d.ts +14 -0
  90. package/engine/internal/unit/bonus.lua +102 -8
  91. package/engine/internal/unit/buff.d.ts +2 -2
  92. package/engine/internal/unit/buff.lua +34 -19
  93. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  94. package/engine/internal/unit/equipment-inventory.lua +233 -0
  95. package/engine/internal/unit/expiration-timer.lua +1 -1
  96. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  97. package/engine/internal/unit/extended-inventory.lua +99 -0
  98. package/engine/internal/unit/fly-height.d.ts +7 -0
  99. package/engine/internal/unit/fly-height.lua +20 -0
  100. package/engine/internal/unit/ignore-events-items.lua +10 -1
  101. package/engine/internal/unit/interrupts.d.ts +12 -0
  102. package/engine/internal/unit/interrupts.lua +28 -0
  103. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  104. package/engine/internal/unit/inventory.lua +87 -0
  105. package/engine/internal/unit/item-container.d.ts +25 -0
  106. package/engine/internal/unit/item-container.lua +11 -0
  107. package/engine/internal/unit/item-order-events.d.ts +17 -0
  108. package/engine/internal/unit/item-order-events.lua +67 -0
  109. package/engine/internal/unit/item-slot.d.ts +27 -0
  110. package/engine/internal/unit/item-slot.lua +92 -0
  111. package/engine/internal/unit/main-selected.lua +12 -27
  112. package/engine/internal/unit/order.d.ts +3 -3
  113. package/engine/internal/unit/order.lua +10 -10
  114. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  115. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  116. package/engine/internal/unit/range-event.d.ts +12 -0
  117. package/engine/internal/unit/range-event.lua +90 -0
  118. package/engine/internal/unit/scale.d.ts +7 -0
  119. package/engine/internal/unit/scale.lua +20 -0
  120. package/engine/internal/unit+ability.d.ts +2 -1
  121. package/engine/internal/unit+ability.lua +73 -3
  122. package/engine/internal/unit+bonus.lua +3 -3
  123. package/engine/internal/unit+damage.d.ts +9 -0
  124. package/engine/internal/unit+damage.lua +33 -0
  125. package/engine/internal/unit+rally.lua +9 -31
  126. package/engine/internal/unit-missile-data.lua +58 -32
  127. package/engine/internal/unit-missile-launch.lua +65 -27
  128. package/engine/internal/unit.d.ts +19 -32
  129. package/engine/internal/unit.lua +241 -341
  130. package/engine/local-client.d.ts +28 -0
  131. package/engine/local-client.lua +324 -54
  132. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  133. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  134. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  135. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  136. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  137. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  138. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  139. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  140. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  141. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  142. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  143. package/engine/object-data/auxiliary/item-class.lua +2 -0
  144. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  145. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  146. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  147. package/engine/object-data/auxiliary/order-type.lua +2 -0
  148. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  149. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  150. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  151. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  152. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  153. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  154. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  155. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  156. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  157. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  158. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  159. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  160. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  161. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  162. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  163. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  164. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  165. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  166. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  167. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  168. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  169. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  170. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  171. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  172. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  173. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  174. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  175. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  176. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  177. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  178. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  179. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  180. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  181. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  182. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  183. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  184. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  185. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  186. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  187. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  188. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  189. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  190. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  191. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  192. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  193. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  194. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  195. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  196. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  197. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  198. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  199. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  200. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  201. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  202. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  203. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  204. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  205. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  206. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  207. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  208. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  209. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  210. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  211. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  212. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  213. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  214. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  215. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  216. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  217. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  218. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  219. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  220. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  221. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  222. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  223. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  224. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  225. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  226. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  227. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  228. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  229. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  230. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  231. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  232. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  233. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  234. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  235. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  236. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  237. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  238. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  239. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  240. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  241. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  242. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  243. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  244. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  245. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  246. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  247. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  248. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  249. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  250. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  251. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  252. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  253. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  254. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  255. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  256. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  257. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  258. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  259. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  260. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  261. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  262. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  263. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  264. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  265. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  266. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  267. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  268. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  269. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  270. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  271. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  272. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  273. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  274. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  275. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  276. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  277. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  278. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  279. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  280. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  281. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  282. package/engine/object-data/entry/ability-type.d.ts +25 -6
  283. package/engine/object-data/entry/ability-type.lua +249 -12
  284. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  285. package/engine/object-data/entry/buff-type.d.ts +6 -2
  286. package/engine/object-data/entry/buff-type.lua +26 -0
  287. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  288. package/engine/object-data/entry/destructible-type.lua +181 -0
  289. package/engine/object-data/entry/item-type.d.ts +18 -3
  290. package/engine/object-data/entry/item-type.lua +84 -0
  291. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  292. package/engine/object-data/entry/lightning-type.lua +1 -1
  293. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  294. package/engine/object-data/entry/unit-type.d.ts +62 -4
  295. package/engine/object-data/entry/unit-type.lua +474 -38
  296. package/engine/object-data/entry/upgrade.d.ts +2 -2
  297. package/engine/object-data/entry.d.ts +6 -1
  298. package/engine/object-data/entry.lua +8 -0
  299. package/engine/object-field/ability.d.ts +3 -3
  300. package/engine/object-field/ability.lua +9 -8
  301. package/engine/object-field/item.d.ts +22 -0
  302. package/engine/object-field/item.lua +118 -0
  303. package/engine/object-field/unit.d.ts +27 -5
  304. package/engine/object-field/unit.lua +82 -0
  305. package/engine/object-field.d.ts +12 -4
  306. package/engine/object-field.lua +273 -126
  307. package/engine/random.d.ts +10 -0
  308. package/engine/random.lua +21 -0
  309. package/engine/standard/entries/ability-type.d.ts +3102 -7
  310. package/engine/standard/entries/ability-type.lua +0 -6
  311. package/engine/standard/entries/buff-type.d.ts +45 -0
  312. package/engine/standard/entries/buff-type.lua +43 -0
  313. package/engine/standard/entries/item-type.d.ts +1299 -0
  314. package/engine/standard/entries/item-type.lua +2 -0
  315. package/engine/standard/entries/lightning-type.d.ts +42 -15
  316. package/engine/standard/entries/lightning-type.lua +0 -14
  317. package/engine/standard/entries/unit-type.d.ts +5 -0
  318. package/engine/standard/entries/unit-type.lua +5 -0
  319. package/engine/standard/fields/ability.d.ts +2 -2
  320. package/engine/standard/fields/ability.lua +2 -2
  321. package/engine/standard/fields/item.d.ts +4 -0
  322. package/engine/standard/fields/item.lua +6 -0
  323. package/engine/standard/fields/unit.d.ts +11 -2
  324. package/engine/standard/fields/unit.lua +16 -1
  325. package/engine/synchronization.d.ts +11 -0
  326. package/engine/synchronization.lua +77 -0
  327. package/engine/text-tag.d.ts +1 -1
  328. package/engine/text-tag.lua +92 -17
  329. package/engine/unit.d.ts +10 -1
  330. package/engine/unit.lua +10 -1
  331. package/event.d.ts +1 -1
  332. package/lualib_bundle.lua +1 -1
  333. package/math.d.ts +2 -0
  334. package/math.lua +14 -0
  335. package/net/socket.lua +1 -1
  336. package/network.lua +25 -1
  337. package/objutil/buff.lua +11 -9
  338. package/objutil/object.lua +1 -1
  339. package/operation.d.ts +8 -1
  340. package/operation.lua +38 -18
  341. package/package.json +3 -23
  342. package/patch-lua.lua +15 -0
  343. package/patch-lualib.lua +1 -1
  344. package/utility/arrays.d.ts +2 -0
  345. package/utility/arrays.lua +20 -0
  346. package/utility/callback-array.d.ts +17 -0
  347. package/utility/callback-array.lua +61 -0
  348. package/utility/functions.d.ts +7 -0
  349. package/utility/functions.lua +12 -0
  350. package/utility/linked-map.d.ts +35 -0
  351. package/utility/linked-map.lua +107 -0
  352. package/utility/linked-set.d.ts +4 -1
  353. package/utility/linked-set.lua +46 -1
  354. package/utility/lua-maps.d.ts +11 -2
  355. package/utility/lua-maps.lua +33 -2
  356. package/utility/lua-sets.d.ts +1 -0
  357. package/utility/lua-sets.lua +4 -0
  358. package/utility/random.d.ts +102 -0
  359. package/utility/random.lua +273 -0
  360. package/utility/records.lua +20 -1
  361. package/utility/types.d.ts +3 -0
  362. package/utility/unordered-map.d.ts +27 -0
  363. package/utility/unordered-map.lua +99 -0
  364. package/engine/internal/unit/item.lua +0 -78
  365. /package/engine/internal/{object-data/armor-increase.d.ts → misc/frame-coordinates.d.ts} +0 -0
  366. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  367. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  368. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,104 @@
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.ValiantChargeAbilityType = __TS__Class()
9
+ local ValiantChargeAbilityType = ____exports.ValiantChargeAbilityType
10
+ ValiantChargeAbilityType.name = "ValiantChargeAbilityType"
11
+ __TS__ClassExtends(ValiantChargeAbilityType, AbilityType)
12
+ ValiantChargeAbilityType.BASE_ID = fourCC("AHch")
13
+ __TS__SetDescriptor(
14
+ ValiantChargeAbilityType.prototype,
15
+ "targetIntersectRadius",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("chra")
19
+ end,
20
+ set = function(self, targetIntersectRadius)
21
+ self:setNumberLevelField("chra", targetIntersectRadius)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ __TS__SetDescriptor(
27
+ ValiantChargeAbilityType.prototype,
28
+ "dashSpeed",
29
+ {
30
+ get = function(self)
31
+ return self:getNumberLevelField("chr1")
32
+ end,
33
+ set = function(self, dashSpeed)
34
+ self:setNumberLevelField("chr1", dashSpeed)
35
+ end
36
+ },
37
+ true
38
+ )
39
+ __TS__SetDescriptor(
40
+ ValiantChargeAbilityType.prototype,
41
+ "dashDamage",
42
+ {
43
+ get = function(self)
44
+ return self:getNumberLevelField("chr2")
45
+ end,
46
+ set = function(self, dashDamage)
47
+ self:setNumberLevelField("chr2", dashDamage)
48
+ end
49
+ },
50
+ true
51
+ )
52
+ __TS__SetDescriptor(
53
+ ValiantChargeAbilityType.prototype,
54
+ "bonusCriticalStrike",
55
+ {
56
+ get = function(self)
57
+ return self:getNumberLevelField("chr3")
58
+ end,
59
+ set = function(self, bonusCriticalStrike)
60
+ self:setNumberLevelField("chr3", bonusCriticalStrike)
61
+ end
62
+ },
63
+ true
64
+ )
65
+ __TS__SetDescriptor(
66
+ ValiantChargeAbilityType.prototype,
67
+ "bonusCriticalStrikeDuration",
68
+ {
69
+ get = function(self)
70
+ return self:getNumberLevelField("chr4")
71
+ end,
72
+ set = function(self, bonusCriticalStrikeDuration)
73
+ self:setNumberLevelField("chr4", bonusCriticalStrikeDuration)
74
+ end
75
+ },
76
+ true
77
+ )
78
+ __TS__SetDescriptor(
79
+ ValiantChargeAbilityType.prototype,
80
+ "bonusCriticalStrikeHeroDuration",
81
+ {
82
+ get = function(self)
83
+ return self:getNumberLevelField("chr5")
84
+ end,
85
+ set = function(self, bonusCriticalStrikeHeroDuration)
86
+ self:setNumberLevelField("chr5", bonusCriticalStrikeHeroDuration)
87
+ end
88
+ },
89
+ true
90
+ )
91
+ __TS__SetDescriptor(
92
+ ValiantChargeAbilityType.prototype,
93
+ "removesBuffsOnStart",
94
+ {
95
+ get = function(self)
96
+ return self:getBooleanLevelField("chr6")
97
+ end,
98
+ set = function(self, removesBuffsOnStart)
99
+ self:setBooleanLevelField("chr6", removesBuffsOnStart)
100
+ end
101
+ },
102
+ true
103
+ )
104
+ return ____exports
@@ -0,0 +1,9 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class WarcryAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ /** Bonus Abilities List */
7
+ get bonusAbilityTypeIds(): AbilityTypeId[][];
8
+ set bonusAbilityTypeIds(bonusAbilityTypeIds: ObjectDataEntryLevelFieldValueSupplier<AbilityTypeId[]>);
9
+ }
@@ -0,0 +1,26 @@
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.WarcryAbilityType = __TS__Class()
9
+ local WarcryAbilityType = ____exports.WarcryAbilityType
10
+ WarcryAbilityType.name = "WarcryAbilityType"
11
+ __TS__ClassExtends(WarcryAbilityType, AbilityType)
12
+ WarcryAbilityType.BASE_ID = fourCC("AHwc")
13
+ __TS__SetDescriptor(
14
+ WarcryAbilityType.prototype,
15
+ "bonusAbilityTypeIds",
16
+ {
17
+ get = function(self)
18
+ return self:getObjectDataEntryNumericIdsLevelField("hwc1")
19
+ end,
20
+ set = function(self, bonusAbilityTypeIds)
21
+ self:setObjectDataEntryNumericIdsLevelField("hwc1", bonusAbilityTypeIds)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ return ____exports
@@ -0,0 +1,21 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class WitheringFireAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ /** Max Charges */
7
+ get maximumCharges(): number[];
8
+ set maximumCharges(maximumCharges: ObjectDataEntryLevelFieldValueSupplier<number>);
9
+ /** Charge Regen Time */
10
+ get chargeRegenerationTime(): number[];
11
+ set chargeRegenerationTime(chargeRegenerationTime: ObjectDataEntryLevelFieldValueSupplier<number>);
12
+ /** Damage */
13
+ get damage(): number[];
14
+ set damage(damage: ObjectDataEntryLevelFieldValueSupplier<number>);
15
+ /** Target Armor Reduction */
16
+ get targetArmorReduction(): number[];
17
+ set targetArmorReduction(targetArmorReduction: ObjectDataEntryLevelFieldValueSupplier<number>);
18
+ /** Cooldown Reduction On Auto Attack */
19
+ get cooldownReductionOnAutoAttack(): number[];
20
+ set cooldownReductionOnAutoAttack(cooldownReductionOnAutoAttack: ObjectDataEntryLevelFieldValueSupplier<number>);
21
+ }
@@ -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 { AttachmentPresetInput, EffectPresetWithParameters, EffectPresetWithParametersInput } 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;
@@ -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(): EffectPresetWithParameters | undefined;
67
- set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
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);
68
77
  get targetCastingEffectPresets(): EffectPresetWithParameters[];
69
78
  set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
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[]);
70
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
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
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,8 +19,10 @@ 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
25
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
23
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
@@ -38,11 +41,19 @@ local ____sound = require("core.types.sound")
38
41
  local isSoundLabelCustom = ____sound.isSoundLabelCustom
39
42
  local Sound3D = ____sound.Sound3D
40
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
41
48
  local castAnimationFQNByAbilityTypeId = {}
42
49
  local isButtonVisibleFalseAbilityTypes = {}
43
50
  local casterCastingEffectPresetsByAbilityTypeId = {}
44
51
  local casterChannelingEffectPresetsByAbilityTypeId = {}
45
52
  local targetCastingEffectPresetsByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
55
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
56
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
46
57
  local targetEffectSoundPresetByAbilityTypeId = {}
47
58
  ____exports.AbilityType = __TS__Class()
48
59
  local AbilityType = ____exports.AbilityType
@@ -202,6 +213,19 @@ __TS__SetDescriptor(
202
213
  },
203
214
  true
204
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
+ )
205
229
  __TS__SetDescriptor(
206
230
  AbilityType.prototype,
207
231
  "isButtonVisible",
@@ -324,6 +348,19 @@ __TS__SetDescriptor(
324
348
  },
325
349
  true
326
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
+ )
327
364
  __TS__SetDescriptor(
328
365
  AbilityType.prototype,
329
366
  "missileMovementArc",
@@ -352,13 +389,30 @@ __TS__SetDescriptor(
352
389
  )
353
390
  __TS__SetDescriptor(
354
391
  AbilityType.prototype,
355
- "specialAttachmentPreset",
392
+ "specialEffectModelPaths",
393
+ {
394
+ get = function(self)
395
+ return self:getStringsField("asat")
396
+ end,
397
+ set = function(self, specialEffectModelPaths)
398
+ self:setStringsField("asat", specialEffectModelPaths)
399
+ end
400
+ },
401
+ true
402
+ )
403
+ __TS__SetDescriptor(
404
+ AbilityType.prototype,
405
+ "specialEffectAttachmentPoint",
356
406
  {
357
407
  get = function(self)
358
- return self:getAttachmentPresetField("asat", "aspt")
408
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField("aspt"))
409
+ return {nodeName = nodeName, nodeQualifiers = nodeQualifiers}
359
410
  end,
360
- set = function(self, specialAttachmentPreset)
361
- self:setAttachmentPresetField("asat", "aspt", specialAttachmentPreset)
411
+ set = function(self, specialEffectAttachmentPoint)
412
+ self:setStringField(
413
+ "aspt",
414
+ attachmentPointToNodeFQN(specialEffectAttachmentPoint)
415
+ )
362
416
  end
363
417
  },
364
418
  true
@@ -376,6 +430,58 @@ __TS__SetDescriptor(
376
430
  },
377
431
  true
378
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)
481
+ end
482
+ },
483
+ true
484
+ )
379
485
  __TS__SetDescriptor(
380
486
  AbilityType.prototype,
381
487
  "targetEffectPresets",
@@ -457,6 +563,33 @@ __TS__SetDescriptor(
457
563
  },
458
564
  true
459
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
+ )
460
593
  __TS__SetDescriptor(
461
594
  AbilityType.prototype,
462
595
  "turnOffButtonPositionX",
@@ -979,9 +1112,7 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
979
1112
  4,
980
1113
  function(caster, ability)
981
1114
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
982
- Timer:run(function()
983
- caster:playAnimation(animationFQN)
984
- end)
1115
+ Timer:run(caster, "playAnimation", animationFQN)
985
1116
  end
986
1117
  end
987
1118
  )
@@ -1006,9 +1137,10 @@ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEf
1006
1137
  )
1007
1138
  end
1008
1139
  end
1140
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1009
1141
  Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1010
1142
  local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1011
- if isSoundLabelCustom(soundPresetId) then
1143
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1012
1144
  Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1013
1145
  end
1014
1146
  end)
@@ -1098,18 +1230,123 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1098
1230
  end
1099
1231
  casterChannelingEffectsByCaster[caster] = effects
1100
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
1101
1325
  local function handleAbilityStopChannelingEvent(caster)
1102
- local effects = casterChannelingEffectsByCaster[caster]
1103
- if effects ~= nil then
1104
- for i = 1, #effects do
1105
- effects[i]:destroy()
1326
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1327
+ if casterEffects ~= nil then
1328
+ for i = 1, #casterEffects do
1329
+ casterEffects[i]:destroy()
1106
1330
  end
1107
1331
  casterChannelingEffectsByCaster[caster] = nil
1108
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
1109
1340
  end
1110
1341
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1111
1342
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1112
1343
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1113
1344
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1114
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
1115
1352
  return ____exports