warscript 0.0.1-dev.aefeacb → 0.0.1-dev.b1ce140

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) 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 +18 -26
  17. package/core/types/sound.lua +99 -53
  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 +6 -0
  33. package/engine/behaviour/ability/damage.d.ts +13 -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 +17 -6
  44. package/engine/behaviour/ability.lua +81 -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 +41 -2
  48. package/engine/behaviour/unit.lua +270 -6
  49. package/engine/buff.d.ts +79 -27
  50. package/engine/buff.lua +454 -186
  51. package/engine/index.d.ts +2 -1
  52. package/engine/internal/ability.d.ts +11 -1
  53. package/engine/internal/ability.lua +104 -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/ability-duration.lua +1 -1
  64. package/engine/internal/mechanics/cast-ability.lua +6 -3
  65. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  66. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  67. package/engine/internal/misc/frame-coordinates.lua +21 -0
  68. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  69. package/engine/internal/misc/get-terrain-z.lua +11 -0
  70. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  71. package/engine/internal/misc/player-local-handle.lua +5 -0
  72. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  73. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  74. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  75. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  76. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  77. package/engine/internal/object-data/health-bonus.lua +16 -0
  78. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  79. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  80. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  81. package/engine/internal/object-data/mana-bonus.lua +16 -0
  82. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  83. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  84. package/engine/internal/unit/ability.d.ts +35 -0
  85. package/engine/internal/unit/ability.lua +113 -12
  86. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  87. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  88. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  89. package/engine/internal/unit/allowed-targets.lua +9 -1
  90. package/engine/internal/unit/appearance.d.ts +15 -0
  91. package/engine/internal/unit/appearance.lua +85 -0
  92. package/engine/internal/unit/attributes.d.ts +17 -0
  93. package/engine/internal/unit/attributes.lua +46 -0
  94. package/engine/internal/unit/bonus.d.ts +14 -0
  95. package/engine/internal/unit/bonus.lua +102 -8
  96. package/engine/internal/unit/buff.d.ts +2 -2
  97. package/engine/internal/unit/buff.lua +34 -19
  98. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  99. package/engine/internal/unit/equipment-inventory.lua +233 -0
  100. package/engine/internal/unit/expiration-timer.lua +1 -1
  101. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  102. package/engine/internal/unit/extended-inventory.lua +99 -0
  103. package/engine/internal/unit/fly-height.d.ts +7 -0
  104. package/engine/internal/unit/fly-height.lua +20 -0
  105. package/engine/internal/unit/ignore-events-items.lua +10 -1
  106. package/engine/internal/unit/interrupts.d.ts +12 -0
  107. package/engine/internal/unit/interrupts.lua +28 -0
  108. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  109. package/engine/internal/unit/inventory.lua +87 -0
  110. package/engine/internal/unit/item-container.d.ts +25 -0
  111. package/engine/internal/unit/item-container.lua +11 -0
  112. package/engine/internal/unit/item-order-events.d.ts +17 -0
  113. package/engine/internal/unit/item-order-events.lua +67 -0
  114. package/engine/internal/unit/item-slot.d.ts +27 -0
  115. package/engine/internal/unit/item-slot.lua +92 -0
  116. package/engine/internal/unit/main-selected.lua +12 -27
  117. package/engine/internal/unit/order.d.ts +20 -0
  118. package/engine/internal/unit/order.lua +136 -0
  119. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  120. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  121. package/engine/internal/unit/range-event.d.ts +12 -0
  122. package/engine/internal/unit/range-event.lua +90 -0
  123. package/engine/internal/unit/scale.d.ts +7 -0
  124. package/engine/internal/unit/scale.lua +20 -0
  125. package/engine/internal/unit+ability.d.ts +2 -1
  126. package/engine/internal/unit+ability.lua +73 -3
  127. package/engine/internal/unit+bonus.lua +3 -3
  128. package/engine/internal/unit+damage.d.ts +11 -11
  129. package/engine/internal/unit+damage.lua +43 -14
  130. package/engine/internal/unit+rally.lua +9 -31
  131. package/engine/internal/unit+spellSteal.lua +1 -2
  132. package/engine/internal/unit-missile-data.lua +58 -32
  133. package/engine/internal/unit-missile-launch.lua +65 -27
  134. package/engine/internal/unit.d.ts +43 -33
  135. package/engine/internal/unit.lua +391 -323
  136. package/engine/local-client.d.ts +28 -0
  137. package/engine/local-client.lua +324 -54
  138. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  139. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  140. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  141. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  142. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  143. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  144. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  145. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  146. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  147. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  148. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  149. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  150. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  151. package/engine/object-data/auxiliary/item-class.lua +2 -0
  152. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  153. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  154. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  155. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  156. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  157. package/engine/object-data/auxiliary/order-type.lua +2 -0
  158. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  159. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  160. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  161. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  162. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  163. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  164. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  165. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  166. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  167. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  168. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  169. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  170. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  171. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  172. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  173. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  174. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  175. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  176. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  177. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  178. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  179. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  180. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  181. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  182. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  183. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  184. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  185. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  186. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  187. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  188. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  189. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  190. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  191. package/engine/object-data/entry/ability-type/curse.lua +2 -2
  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/ensnare.d.ts +12 -0
  195. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  196. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  197. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  198. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  199. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  200. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  201. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  202. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  203. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  204. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  205. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  206. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  207. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  208. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  209. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  210. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  211. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  212. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  213. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  214. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  215. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  216. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  217. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  218. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  219. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  220. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  221. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  222. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  223. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  224. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  225. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  226. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  227. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  228. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  229. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  230. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  231. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  232. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  233. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  234. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  235. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  236. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  237. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  238. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  239. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  240. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  241. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  242. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  243. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  244. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  245. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  246. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  247. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  248. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  249. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  250. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  251. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  252. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  253. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  254. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  255. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  256. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  257. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  258. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  259. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  260. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  261. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  262. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  263. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  264. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  265. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  266. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  267. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  268. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  269. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  270. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  271. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  272. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  273. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  274. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  275. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  276. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  277. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  278. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  279. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  280. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  281. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  282. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  283. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  284. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  285. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  286. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  287. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  288. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  289. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  290. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  291. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  292. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  293. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  294. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  295. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  296. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  297. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  298. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  299. package/engine/object-data/entry/ability-type/web.lua +52 -0
  300. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  301. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  302. package/engine/object-data/entry/ability-type.d.ts +29 -14
  303. package/engine/object-data/entry/ability-type.lua +256 -17
  304. package/engine/object-data/entry/buff-type/applicable.lua +113 -104
  305. package/engine/object-data/entry/buff-type.d.ts +10 -12
  306. package/engine/object-data/entry/buff-type.lua +37 -27
  307. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  308. package/engine/object-data/entry/destructible-type.lua +181 -0
  309. package/engine/object-data/entry/item-type.d.ts +18 -3
  310. package/engine/object-data/entry/item-type.lua +84 -0
  311. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  312. package/engine/object-data/entry/lightning-type.lua +1 -1
  313. package/engine/object-data/entry/sound-preset.d.ts +19 -2
  314. package/engine/object-data/entry/sound-preset.lua +104 -0
  315. package/engine/object-data/entry/unit-type.d.ts +64 -6
  316. package/engine/object-data/entry/unit-type.lua +531 -85
  317. package/engine/object-data/entry/upgrade.d.ts +2 -2
  318. package/engine/object-data/entry.d.ts +6 -1
  319. package/engine/object-data/entry.lua +8 -0
  320. package/engine/object-field/ability.d.ts +4 -4
  321. package/engine/object-field/ability.lua +9 -8
  322. package/engine/object-field/item.d.ts +22 -0
  323. package/engine/object-field/item.lua +118 -0
  324. package/engine/object-field/unit.d.ts +72 -3
  325. package/engine/object-field/unit.lua +268 -7
  326. package/engine/object-field.d.ts +26 -7
  327. package/engine/object-field.lua +360 -119
  328. package/engine/random.d.ts +10 -0
  329. package/engine/random.lua +21 -0
  330. package/engine/standard/entries/ability-type.d.ts +3102 -7
  331. package/engine/standard/entries/ability-type.lua +0 -6
  332. package/engine/standard/entries/buff-type.d.ts +3 -0
  333. package/engine/standard/entries/buff-type.lua +3 -0
  334. package/engine/standard/entries/item-type.d.ts +1299 -0
  335. package/engine/standard/entries/item-type.lua +2 -0
  336. package/engine/standard/entries/lightning-type.d.ts +42 -15
  337. package/engine/standard/entries/lightning-type.lua +0 -14
  338. package/engine/standard/entries/unit-type.d.ts +5 -0
  339. package/engine/standard/entries/unit-type.lua +5 -0
  340. package/engine/standard/fields/ability.d.ts +2 -2
  341. package/engine/standard/fields/ability.lua +2 -2
  342. package/engine/standard/fields/item.d.ts +4 -0
  343. package/engine/standard/fields/item.lua +6 -0
  344. package/engine/standard/fields/unit.d.ts +12 -0
  345. package/engine/standard/fields/unit.lua +20 -0
  346. package/engine/synchronization.d.ts +11 -0
  347. package/engine/synchronization.lua +77 -0
  348. package/engine/text-tag.d.ts +36 -2
  349. package/engine/text-tag.lua +250 -10
  350. package/engine/unit.d.ts +11 -1
  351. package/engine/unit.lua +11 -1
  352. package/event.d.ts +1 -1
  353. package/lualib_bundle.lua +1 -1
  354. package/math.d.ts +2 -0
  355. package/math.lua +14 -0
  356. package/net/socket.lua +1 -1
  357. package/network.lua +25 -1
  358. package/objutil/buff.lua +12 -11
  359. package/objutil/object.lua +1 -1
  360. package/operation.d.ts +8 -1
  361. package/operation.lua +38 -18
  362. package/package.json +3 -23
  363. package/patch-lua.lua +15 -0
  364. package/patch-lualib.lua +1 -1
  365. package/utility/arrays.d.ts +2 -0
  366. package/utility/arrays.lua +11 -0
  367. package/utility/callback-array.d.ts +17 -0
  368. package/utility/callback-array.lua +61 -0
  369. package/utility/functions.d.ts +8 -0
  370. package/utility/functions.lua +13 -0
  371. package/utility/linked-map.d.ts +35 -0
  372. package/utility/linked-map.lua +107 -0
  373. package/utility/linked-set.d.ts +5 -1
  374. package/utility/linked-set.lua +49 -1
  375. package/utility/lua-maps.d.ts +15 -2
  376. package/utility/lua-maps.lua +53 -2
  377. package/utility/lua-sets.d.ts +2 -0
  378. package/utility/lua-sets.lua +7 -0
  379. package/utility/random.d.ts +102 -0
  380. package/utility/random.lua +273 -0
  381. package/utility/records.lua +20 -1
  382. package/utility/types.d.ts +3 -0
  383. package/utility/unordered-map.d.ts +27 -0
  384. package/utility/unordered-map.lua +99 -0
  385. package/core/types/order.d.ts +0 -25
  386. package/core/types/order.lua +0 -55
  387. package/engine/internal/unit/item.lua +0 -78
  388. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  389. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  390. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  391. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -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
@@ -20,7 +21,7 @@ local mapIndexed = ____arrays.mapIndexed
20
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
21
22
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
22
23
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
23
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
24
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
24
25
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
25
26
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
26
27
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -35,13 +36,22 @@ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilit
35
36
  local ____upgrade = require("engine.object-data.entry.upgrade")
36
37
  local Upgrade = ____upgrade.Upgrade
37
38
  local ____sound = require("core.types.sound")
39
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
38
40
  local Sound3D = ____sound.Sound3D
39
- local SoundPreset = ____sound.SoundPreset
41
+ local SoundSettings = ____sound.SoundSettings
42
+ local ____lua_2Dsets = require("utility.lua-sets")
43
+ local luaSetOf = ____lua_2Dsets.luaSetOf
44
+ local ____local_2Dclient = require("engine.local-client")
45
+ local LocalClient = ____local_2Dclient.LocalClient
40
46
  local castAnimationFQNByAbilityTypeId = {}
41
47
  local isButtonVisibleFalseAbilityTypes = {}
42
48
  local casterCastingEffectPresetsByAbilityTypeId = {}
43
49
  local casterChannelingEffectPresetsByAbilityTypeId = {}
44
50
  local targetCastingEffectPresetsByAbilityTypeId = {}
51
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
52
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
45
55
  local targetEffectSoundPresetByAbilityTypeId = {}
46
56
  ____exports.AbilityType = __TS__Class()
47
57
  local AbilityType = ____exports.AbilityType
@@ -118,7 +128,7 @@ __TS__SetDescriptor(
118
128
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
119
129
  end,
120
130
  set = function(self, casterCastingEffectPresets)
121
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
131
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
122
132
  end
123
133
  },
124
134
  true
@@ -131,7 +141,7 @@ __TS__SetDescriptor(
131
141
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
132
142
  end,
133
143
  set = function(self, casterChannelingEffectPresets)
134
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
144
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
135
145
  end
136
146
  },
137
147
  true
@@ -201,6 +211,19 @@ __TS__SetDescriptor(
201
211
  },
202
212
  true
203
213
  )
214
+ __TS__SetDescriptor(
215
+ AbilityType.prototype,
216
+ "iconPathDE",
217
+ {
218
+ get = function(self)
219
+ return self:getStringField("aart:de")
220
+ end,
221
+ set = function(self, iconPathDE)
222
+ self:setStringField("aart:de", iconPathDE)
223
+ end
224
+ },
225
+ true
226
+ )
204
227
  __TS__SetDescriptor(
205
228
  AbilityType.prototype,
206
229
  "isButtonVisible",
@@ -323,6 +346,19 @@ __TS__SetDescriptor(
323
346
  },
324
347
  true
325
348
  )
349
+ __TS__SetDescriptor(
350
+ AbilityType.prototype,
351
+ "missileModelPathDE",
352
+ {
353
+ get = function(self)
354
+ return self:getStringField("amat:de")
355
+ end,
356
+ set = function(self, missileModelPathDE)
357
+ self:setStringField("amat:de", missileModelPathDE)
358
+ end
359
+ },
360
+ true
361
+ )
326
362
  __TS__SetDescriptor(
327
363
  AbilityType.prototype,
328
364
  "missileMovementArc",
@@ -370,7 +406,59 @@ __TS__SetDescriptor(
370
406
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
371
407
  end,
372
408
  set = function(self, targetCastingEffectPresets)
373
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
409
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
410
+ end
411
+ },
412
+ true
413
+ )
414
+ __TS__SetDescriptor(
415
+ AbilityType.prototype,
416
+ "targetChannelingEffectPresets",
417
+ {
418
+ get = function(self)
419
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
420
+ end,
421
+ set = function(self, targetChannelingEffectPresets)
422
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
423
+ end
424
+ },
425
+ true
426
+ )
427
+ __TS__SetDescriptor(
428
+ AbilityType.prototype,
429
+ "targetChannelingEffectPresetsSD",
430
+ {
431
+ get = function(self)
432
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
433
+ end,
434
+ set = function(self, targetChannelingEffectPresetsSD)
435
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
436
+ end
437
+ },
438
+ true
439
+ )
440
+ __TS__SetDescriptor(
441
+ AbilityType.prototype,
442
+ "targetChannelingEffectPresetsHD",
443
+ {
444
+ get = function(self)
445
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
446
+ end,
447
+ set = function(self, targetChannelingEffectPresetsHD)
448
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
449
+ end
450
+ },
451
+ true
452
+ )
453
+ __TS__SetDescriptor(
454
+ AbilityType.prototype,
455
+ "targetChannelingEffectPresetsDE",
456
+ {
457
+ get = function(self)
458
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
459
+ end,
460
+ set = function(self, targetChannelingEffectPresetsDE)
461
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
374
462
  end
375
463
  },
376
464
  true
@@ -456,6 +544,33 @@ __TS__SetDescriptor(
456
544
  },
457
545
  true
458
546
  )
547
+ __TS__SetDescriptor(
548
+ AbilityType.prototype,
549
+ "targetEffectPresetsDE",
550
+ {
551
+ get = function(self)
552
+ return self:getAttachmentPresetListField(
553
+ "atat:de",
554
+ array(
555
+ 6,
556
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
557
+ )
558
+ )
559
+ end,
560
+ set = function(self, targetEffectPresetsDE)
561
+ self:setAttachmentPresetListField(
562
+ "atat:de",
563
+ array(
564
+ 6,
565
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
566
+ ),
567
+ "atac:de",
568
+ targetEffectPresetsDE
569
+ )
570
+ end
571
+ },
572
+ true
573
+ )
459
574
  __TS__SetDescriptor(
460
575
  AbilityType.prototype,
461
576
  "turnOffButtonPositionX",
@@ -978,9 +1093,7 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
978
1093
  4,
979
1094
  function(caster, ability)
980
1095
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
981
- Timer:run(function()
982
- caster:playAnimation(animationFQN)
983
- end)
1096
+ Timer:run(caster, "playAnimation", animationFQN)
984
1097
  end
985
1098
  end
986
1099
  )
@@ -991,20 +1104,27 @@ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEf
991
1104
  4,
992
1105
  function(caster, ability, target)
993
1106
  if __TS__InstanceOf(target, Unit) then
994
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, target)
1107
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
995
1108
  else
996
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, target.x, target.y)
1109
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
997
1110
  end
998
1111
  end
999
1112
  )
1000
1113
  Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1001
1114
  4,
1002
1115
  function(caster, ability, x, y)
1003
- Sound3D:playFromLabel(soundPresetId, SoundPreset.Ability, x, y)
1116
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1004
1117
  end
1005
1118
  )
1006
1119
  end
1007
1120
  end
1121
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1122
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1123
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1124
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1125
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1126
+ end
1127
+ end)
1008
1128
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
1009
1129
  return mapValues(
1010
1130
  casterCastingEffectPresetsByAbilityTypeId,
@@ -1017,10 +1137,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
1017
1137
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1018
1138
  )
1019
1139
  end)
1140
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1141
+ return mapValues(
1142
+ casterCastingEffectPresetsByAbilityTypeId,
1143
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1144
+ )
1145
+ end)
1020
1146
  local casterCastingEffectsByCaster = {}
1021
1147
  local function handleAbilityCastingStartEvent(caster, ability)
1022
1148
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
1023
1149
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1150
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
1024
1151
  local effects = {}
1025
1152
  if effectModelPaths ~= nil then
1026
1153
  for i = 1, #effectModelPaths do
@@ -1029,7 +1156,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
1029
1156
  if attachmentPoint == nil or attachmentPoint == "" then
1030
1157
  attachmentPoint = "origin"
1031
1158
  end
1032
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1159
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1033
1160
  end
1034
1161
  end
1035
1162
  casterCastingEffectsByCaster[caster] = effects
@@ -1060,10 +1187,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1060
1187
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1061
1188
  )
1062
1189
  end)
1190
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1191
+ return mapValues(
1192
+ casterChannelingEffectPresetsByAbilityTypeId,
1193
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1194
+ )
1195
+ end)
1063
1196
  local casterChannelingEffectsByCaster = {}
1064
1197
  local function handleAbilityChannelingStartEvent(caster, ability)
1065
1198
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1066
1199
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1200
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1067
1201
  local effects = {}
1068
1202
  if effectModelPaths ~= nil then
1069
1203
  for i = 1, #effectModelPaths do
@@ -1072,23 +1206,128 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1072
1206
  if attachmentPoint == nil or attachmentPoint == "" then
1073
1207
  attachmentPoint = "origin"
1074
1208
  end
1075
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1209
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1076
1210
  end
1077
1211
  end
1078
1212
  casterChannelingEffectsByCaster[caster] = effects
1079
1213
  end
1214
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1215
+ local function toData(presets)
1216
+ if presets == nil then
1217
+ return nil
1218
+ end
1219
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1220
+ local parameters = map(presets, "parameters")
1221
+ return {
1222
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1223
+ attachmentPoints = __TS__ArraySome(
1224
+ attachmentPoints,
1225
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1226
+ ) and attachmentPoints or nil,
1227
+ parameters = __TS__ArraySome(
1228
+ presets,
1229
+ function(____, preset) return preset.parameters ~= nil end
1230
+ ) and parameters or nil
1231
+ }
1232
+ end
1233
+ local abilityTypeIds = {}
1234
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1235
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1236
+ abilityTypeIds[abilityTypeId] = true
1237
+ end
1238
+ end
1239
+ local result = {}
1240
+ for abilityTypeId in pairs(abilityTypeIds) do
1241
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1242
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1243
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1244
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1245
+ local ____math_max_8 = math.max
1246
+ local ____opt_0 = presetsSD or presets
1247
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1248
+ local ____opt_2 = presetsHD or presets
1249
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1250
+ local ____opt_4 = presetsDE or presets
1251
+ result[abilityTypeId] = {
1252
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1253
+ data = toData(presets),
1254
+ dataSD = toData(presetsSD),
1255
+ dataHD = toData(presetsHD),
1256
+ dataDE = toData(presetsDE)
1257
+ }
1258
+ end
1259
+ return result
1260
+ end)
1261
+ local targetChannelingEffectsByCaster = {}
1262
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1263
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1264
+ if effectsData == nil then
1265
+ return
1266
+ end
1267
+ local graphicsMode = LocalClient.graphicsMode
1268
+ local ____temp_10
1269
+ if graphicsMode == 0 then
1270
+ ____temp_10 = effectsData.dataSD
1271
+ else
1272
+ local ____temp_9
1273
+ if graphicsMode == 1 then
1274
+ ____temp_9 = effectsData.dataHD
1275
+ else
1276
+ ____temp_9 = effectsData.dataDE
1277
+ end
1278
+ ____temp_10 = ____temp_9
1279
+ end
1280
+ local data = ____temp_10 or effectsData.data
1281
+ local modelPaths = data and data.modelPaths
1282
+ local attachmentPoints = data and data.attachmentPoints
1283
+ local parameters = data and data.parameters
1284
+ local effects = {}
1285
+ for i = 1, effectsData.effectCount do
1286
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1287
+ local effectParameters = parameters and parameters[i]
1288
+ if type(xOrWidget) == "number" then
1289
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1290
+ else
1291
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1292
+ if attachmentPoint == nil or attachmentPoint == "" then
1293
+ attachmentPoint = "origin"
1294
+ end
1295
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1296
+ end
1297
+ end
1298
+ targetChannelingEffectsByCaster[caster] = effects
1299
+ end
1300
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1301
+ createTargetChannelingEffects(caster, ability.typeId, target)
1302
+ end
1303
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1304
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1305
+ end
1080
1306
  local function handleAbilityStopChannelingEvent(caster)
1081
- local effects = casterChannelingEffectsByCaster[caster]
1082
- if effects ~= nil then
1083
- for i = 1, #effects do
1084
- effects[i]:destroy()
1307
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1308
+ if casterEffects ~= nil then
1309
+ for i = 1, #casterEffects do
1310
+ casterEffects[i]:destroy()
1085
1311
  end
1086
1312
  casterChannelingEffectsByCaster[caster] = nil
1087
1313
  end
1314
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1315
+ if targetEffects ~= nil then
1316
+ for i = 1, #targetEffects do
1317
+ targetEffects[i]:destroy()
1318
+ end
1319
+ targetChannelingEffectsByCaster[caster] = nil
1320
+ end
1088
1321
  end
1089
1322
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1090
1323
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1091
1324
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1092
1325
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1093
1326
  end
1327
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1328
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1329
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1330
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1331
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1332
+ end
1094
1333
  return ____exports
@@ -65,118 +65,127 @@ function ApplicableBuffType.wrap(self, other)
65
65
  return __TS__New(____exports.ApplicableBuffType, other.object)
66
66
  end
67
67
  ApplicableBuffType.BASE_ID = fourCC("BHbz")
68
- local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId = table.unpack(postcompile(function()
69
- local function prepareAbilityType(abilityTypeConstructor, applicableBuffType)
70
- local abilityType = abilityTypeConstructor:create()
71
- abilityType.isInternal = true
72
- abilityType.levelCount = applicableBuffType.levelCount
73
- abilityType.buttonPositionX = 0
74
- abilityType.buttonPositionY = -11
75
- abilityType.casterAttachmentPresets = {}
76
- abilityType.targetEffectPresets = {}
77
- abilityType.casterEffectSoundPresetId = nil
78
- abilityType.learnLevelMinimum = 6
79
- abilityType.race = "other"
80
- abilityType.shouldCheckTechTreeDependencies = false
81
- abilityType.techTreeDependencies = {}
82
- abilityType.allowedTargetCombatClassifications = combatClassificationsOf(
83
- 4,
84
- 2,
85
- 2097152,
86
- 8,
87
- 1048576,
88
- 16
89
- )
90
- abilityType.areaOfEffect = 0
91
- abilityType.castRange = 999999
92
- abilityType.cooldown = 0
93
- abilityType.manaCost = 0
94
- abilityType.buffDuration = 0
95
- abilityType.heroBuffDuration = 0
96
- return abilityType
97
- end
98
- local multilevelPhysicalPositiveApplicatorAbilityTypes = {}
99
- local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId = {}
100
- for applicableBuffType in pairs(compiletimeApplicableBuffTypes) do
101
- local applicatorAbilityTypeIdByApplicatorType = {}
102
- if applicableBuffType.resistanceType == 1 or applicableBuffType.resistanceType == nil then
103
- if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
104
- local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
105
- applicatorAbilityType.missProbability = 0
106
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
107
- applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
68
+ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId = table.unpack(
69
+ postcompile(function()
70
+ local function prepareAbilityType(abilityTypeConstructor, applicableBuffType)
71
+ local abilityType = abilityTypeConstructor:create()
72
+ abilityType.isInternal = true
73
+ abilityType.levelCount = applicableBuffType.levelCount
74
+ abilityType.buttonPositionX = 0
75
+ abilityType.buttonPositionY = -11
76
+ abilityType.casterAttachmentPresets = {}
77
+ abilityType.targetEffectPresets = {}
78
+ abilityType.casterEffectSoundPresetId = nil
79
+ abilityType.learnLevelMinimum = 6
80
+ abilityType.race = "other"
81
+ abilityType.shouldCheckTechTreeDependencies = false
82
+ abilityType.techTreeDependencies = {}
83
+ abilityType.allowedTargetCombatClassifications = combatClassificationsOf(
84
+ 4,
85
+ 2,
86
+ 2097152,
87
+ 8,
88
+ 1048576,
89
+ 16
90
+ )
91
+ abilityType.areaOfEffect = 0
92
+ abilityType.castRange = 999999
93
+ abilityType.cooldown = 0
94
+ abilityType.manaCost = 0
95
+ abilityType.buffDuration = 0
96
+ abilityType.heroBuffDuration = 0
97
+ return abilityType
98
+ end
99
+ local multilevelPhysicalPositiveApplicatorAbilityTypes = {}
100
+ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId = {}
101
+ for applicableBuffType in pairs(compiletimeApplicableBuffTypes) do
102
+ local applicatorAbilityTypeIdByApplicatorType = {}
103
+ if applicableBuffType.resistanceType == 1 or applicableBuffType.resistanceType == nil then
104
+ if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
105
+ local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
106
+ applicatorAbilityType.missProbability = 0
107
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
108
+ applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
109
+ end
110
+ if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
111
+ local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
112
+ applicatorAbilityType.attackSpeedIncreaseFactor = 0
113
+ applicatorAbilityType.movementSpeedIncreaseFactor = 0
114
+ applicatorAbilityType.scaleIncrease = 0
115
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
116
+ applicatorAbilityTypeIdByApplicatorType[852101] = applicatorAbilityType.id
117
+ end
108
118
  end
109
- if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
110
- local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
111
- applicatorAbilityType.attackSpeedIncreaseFactor = 0
112
- applicatorAbilityType.movementSpeedIncreaseFactor = 0
113
- applicatorAbilityType.scaleIncrease = 0
119
+ if applicableBuffType.resistanceType == 2 or applicableBuffType.resistanceType == nil then
120
+ if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
121
+ local applicatorAbilityType = prepareAbilityType(SlowPoisonAbilityType, applicableBuffType)
122
+ applicatorAbilityType.damagePerSecond = 0
123
+ applicatorAbilityType.movementSpeedDecreaseFactor = 0
124
+ applicatorAbilityType.attackSpeedDecreaseFactor = 0
125
+ applicatorAbilityType.isDamageStacking = false
126
+ applicatorAbilityType.isMovementSpeedFactorStacking = false
127
+ applicatorAbilityType.isAttackSpeedFactorStacking = false
128
+ applicatorAbilityType.isAbleToKill = false
129
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
130
+ applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
131
+ end
132
+ if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
133
+ local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
134
+ applicatorAbilityType.attackSpeedIncreaseFactor = 0
135
+ applicatorAbilityType.movementSpeedIncreaseFactor = 0
136
+ applicatorAbilityType.receivedDamageIncreaseFactor = 0
137
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
138
+ if applicatorAbilityType.levelCount > 1 then
139
+ multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
140
+ end
141
+ applicatorAbilityTypeIdByApplicatorType[852100] = applicatorAbilityType.id
142
+ end
143
+ end
144
+ if applicableBuffType.polarity == 0 or applicableBuffType.polarity == nil then
145
+ local applicatorAbilityType = prepareAbilityType(PermanentImmolationAbilityType, applicableBuffType)
146
+ applicatorAbilityType.levelCount = 1
147
+ applicatorAbilityType.damagePerInterval = 0
148
+ applicatorAbilityType.castRange = 0
149
+ applicatorAbilityType.buffDuration = MAXIMUM_INTEGER
150
+ applicatorAbilityType.heroBuffDuration = MAXIMUM_INTEGER
151
+ applicatorAbilityType.allowedTargetCombatClassifications = combatClassificationsOf(1)
114
152
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
115
- applicatorAbilityTypeIdByApplicatorType[852101] = applicatorAbilityType.id
153
+ applicatorAbilityTypeIdByApplicatorType[0] = applicatorAbilityType.id
116
154
  end
155
+ applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffType.id] = applicatorAbilityTypeIdByApplicatorType
117
156
  end
118
- if applicableBuffType.resistanceType == 2 or applicableBuffType.resistanceType == nil then
119
- if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
120
- local applicatorAbilityType = prepareAbilityType(SlowPoisonAbilityType, applicableBuffType)
121
- applicatorAbilityType.damagePerSecond = 0
122
- applicatorAbilityType.movementSpeedDecreaseFactor = 0
123
- applicatorAbilityType.attackSpeedDecreaseFactor = 0
124
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
125
- applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
126
- end
127
- if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
128
- local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
129
- applicatorAbilityType.attackSpeedIncreaseFactor = 0
130
- applicatorAbilityType.movementSpeedIncreaseFactor = 0
131
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
132
- if applicatorAbilityType.levelCount > 1 then
133
- multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
157
+ local applicatorUpgradeIds = {}
158
+ local applicatorUpgradeIdByApplicatorAbilityTypeId = {}
159
+ for ____, multilevelPhysicalPositiveApplicatorAbilityTypesChunk in ipairs(chunked(multilevelPhysicalPositiveApplicatorAbilityTypes, 4)) do
160
+ local maxLevelCount = max(map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "levelCount"))
161
+ local applicatorAbilityTypeIds = map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "id")
162
+ local applicatorUpgrade = BlankUpgrade:create()
163
+ applicatorUpgrade.isInternal = true
164
+ applicatorUpgrade.levelCount = maxLevelCount - 1
165
+ applicatorUpgrade.effects = map(
166
+ applicatorAbilityTypeIds,
167
+ function(applicatorAbilityTypeId)
168
+ return {type = "rlev", bonusBase = 1, bonusIncrement = 1, abilityTypeId = applicatorAbilityTypeId}
134
169
  end
135
- applicatorAbilityTypeIdByApplicatorType[852100] = applicatorAbilityType.id
170
+ )
171
+ applicatorUpgradeIds[#applicatorUpgradeIds + 1] = applicatorUpgrade.id
172
+ for ____, applicatorAbilityTypeId in ipairs(applicatorAbilityTypeIds) do
173
+ applicatorUpgradeIdByApplicatorAbilityTypeId[applicatorAbilityTypeId] = applicatorUpgrade.id
136
174
  end
137
175
  end
138
- if applicableBuffType.polarity == 0 or applicableBuffType.polarity == nil then
139
- local applicatorAbilityType = prepareAbilityType(PermanentImmolationAbilityType, applicableBuffType)
140
- applicatorAbilityType.levelCount = 1
141
- applicatorAbilityType.damagePerInterval = 0
142
- applicatorAbilityType.castRange = 0
143
- applicatorAbilityType.buffDuration = MAXIMUM_INTEGER
144
- applicatorAbilityType.heroBuffDuration = MAXIMUM_INTEGER
145
- applicatorAbilityType.allowedTargetCombatClassifications = combatClassificationsOf(1)
146
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
147
- applicatorAbilityTypeIdByApplicatorType[0] = applicatorAbilityType.id
148
- end
149
- applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffType.id] = applicatorAbilityTypeIdByApplicatorType
150
- end
151
- local applicatorUpgradeIds = {}
152
- local applicatorUpgradeIdByApplicatorAbilityTypeId = {}
153
- for ____, multilevelPhysicalPositiveApplicatorAbilityTypesChunk in ipairs(chunked(multilevelPhysicalPositiveApplicatorAbilityTypes, 4)) do
154
- local maxLevelCount = max(map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "levelCount"))
155
- local applicatorAbilityTypeIds = map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "id")
156
- local applicatorUpgrade = BlankUpgrade:create()
157
- applicatorUpgrade.isInternal = true
158
- applicatorUpgrade.levelCount = maxLevelCount - 1
159
- applicatorUpgrade.effects = map(
160
- applicatorAbilityTypeIds,
161
- function(applicatorAbilityTypeId)
162
- return {type = "rlev", bonusBase = 1, bonusIncrement = 1, abilityTypeId = applicatorAbilityTypeId}
163
- end
164
- )
165
- applicatorUpgradeIds[#applicatorUpgradeIds + 1] = applicatorUpgrade.id
166
- for ____, applicatorAbilityTypeId in ipairs(applicatorAbilityTypeIds) do
167
- applicatorUpgradeIdByApplicatorAbilityTypeId[applicatorAbilityTypeId] = applicatorUpgrade.id
176
+ for ____, unitType in ipairs(UnitType:getAll()) do
177
+ local ____array_0 = __TS__SparseArrayNew(table.unpack(unitType.affectingUpgradeIds))
178
+ __TS__SparseArrayPush(
179
+ ____array_0,
180
+ table.unpack(applicatorUpgradeIds)
181
+ )
182
+ unitType.affectingUpgradeIds = {__TS__SparseArraySpread(____array_0)}
168
183
  end
169
- end
170
- for ____, unitType in ipairs(UnitType:getAll()) do
171
- local ____array_0 = __TS__SparseArrayNew(table.unpack(unitType.affectingUpgradeIds))
172
- __TS__SparseArrayPush(
173
- ____array_0,
174
- table.unpack(applicatorUpgradeIds)
175
- )
176
- unitType.affectingUpgradeIds = {__TS__SparseArraySpread(____array_0)}
177
- end
178
- return {applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId}
179
- end))
184
+ return {applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId}
185
+ end),
186
+ 1,
187
+ 2
188
+ )
180
189
  local EVASION_ABILITY_TYPE_IDS = postcompile(function()
181
190
  return AbilityType:getAllIdsByBaseIds(map({
182
191
  "AEev",