warscript 0.0.1-dev.3eed609 → 0.0.1-dev.3f0a5ea

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 (346) hide show
  1. package/core/dummy.lua +4 -2
  2. package/core/types/effect.d.ts +11 -1
  3. package/core/types/effect.lua +43 -77
  4. package/core/types/frame.d.ts +16 -2
  5. package/core/types/frame.lua +128 -67
  6. package/core/types/handle.lua +9 -9
  7. package/core/types/item.d.ts +1 -0
  8. package/core/types/item.lua +1 -0
  9. package/core/types/missile.lua +8 -7
  10. package/core/types/player.d.ts +2 -1
  11. package/core/types/player.lua +18 -13
  12. package/core/types/playerColor.lua +4 -3
  13. package/core/types/sound.d.ts +1 -1
  14. package/core/types/sound.lua +14 -9
  15. package/core/types/tileCell.d.ts +7 -2
  16. package/core/types/tileCell.lua +11 -0
  17. package/core/types/unit.d.ts +5 -0
  18. package/core/types/unit.lua +5 -0
  19. package/core/util.d.ts +3 -1
  20. package/core/util.lua +109 -3
  21. package/decl/native.d.ts +706 -7
  22. package/destroyable.d.ts +1 -0
  23. package/destroyable.lua +9 -0
  24. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  25. package/engine/ability-type-extended-tooltip.lua +44 -0
  26. package/engine/behavior.d.ts +4 -2
  27. package/engine/behavior.lua +69 -11
  28. package/engine/behaviour/ability/apply-buff.lua +4 -4
  29. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  30. package/engine/behaviour/ability/damage.d.ts +4 -0
  31. package/engine/behaviour/ability/damage.lua +19 -15
  32. package/engine/behaviour/ability/emulate-impact.d.ts +14 -0
  33. package/engine/behaviour/ability/emulate-impact.lua +79 -5
  34. package/engine/behaviour/ability/instant-impact.d.ts +12 -1
  35. package/engine/behaviour/ability/instant-impact.lua +17 -2
  36. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  37. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  38. package/engine/behaviour/ability.d.ts +19 -6
  39. package/engine/behaviour/ability.lua +120 -9
  40. package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
  41. package/engine/behaviour/unit/stun-immunity.lua +5 -4
  42. package/engine/behaviour/unit.d.ts +1 -0
  43. package/engine/behaviour/unit.lua +14 -3
  44. package/engine/buff.d.ts +103 -55
  45. package/engine/buff.lua +486 -270
  46. package/engine/index.d.ts +2 -1
  47. package/engine/internal/ability.d.ts +7 -0
  48. package/engine/internal/ability.lua +65 -36
  49. package/engine/internal/item/fields.d.ts +12 -0
  50. package/engine/internal/item/fields.lua +33 -0
  51. package/engine/internal/item/owner-cache.d.ts +5 -0
  52. package/engine/internal/item/owner-cache.lua +4 -0
  53. package/engine/internal/item+owner.d.ts +2 -0
  54. package/engine/internal/item+owner.lua +27 -4
  55. package/engine/internal/item.d.ts +20 -5
  56. package/engine/internal/item.lua +146 -57
  57. package/engine/internal/mechanics/cast-ability.lua +6 -3
  58. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  59. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  60. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  61. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  62. package/engine/internal/object-data/health-bonus.lua +16 -0
  63. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  64. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  65. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  66. package/engine/internal/object-data/mana-bonus.lua +16 -0
  67. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  68. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  69. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  70. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  71. package/engine/internal/unit/ability.lua +16 -0
  72. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  73. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  74. package/engine/internal/unit/appearance.d.ts +15 -0
  75. package/engine/internal/unit/appearance.lua +85 -0
  76. package/engine/internal/unit/attributes.d.ts +17 -0
  77. package/engine/internal/unit/attributes.lua +46 -0
  78. package/engine/internal/unit/bonus.d.ts +17 -0
  79. package/engine/internal/unit/bonus.lua +113 -8
  80. package/engine/internal/unit/buff.d.ts +2 -2
  81. package/engine/internal/unit/buff.lua +34 -19
  82. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  83. package/engine/internal/unit/equipment-inventory.lua +233 -0
  84. package/engine/internal/unit/expiration-timer.lua +1 -1
  85. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  86. package/engine/internal/unit/extended-inventory.lua +99 -0
  87. package/engine/internal/unit/fly-height.lua +3 -3
  88. package/engine/internal/unit/ignore-events-items.lua +10 -1
  89. package/engine/internal/unit/interrupts.d.ts +12 -0
  90. package/engine/internal/unit/interrupts.lua +28 -0
  91. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  92. package/engine/internal/unit/inventory.lua +87 -0
  93. package/engine/internal/unit/item-container.d.ts +25 -0
  94. package/engine/internal/unit/item-container.lua +11 -0
  95. package/engine/internal/unit/item-order-events.d.ts +17 -0
  96. package/engine/internal/unit/item-order-events.lua +67 -0
  97. package/engine/internal/unit/item-slot.d.ts +27 -0
  98. package/engine/internal/unit/item-slot.lua +92 -0
  99. package/engine/internal/unit/order.d.ts +3 -3
  100. package/engine/internal/unit/order.lua +10 -10
  101. package/engine/internal/unit/range-event.d.ts +12 -0
  102. package/engine/internal/unit/range-event.lua +90 -0
  103. package/engine/internal/unit/scale.lua +3 -3
  104. package/engine/internal/unit+ability.d.ts +2 -1
  105. package/engine/internal/unit+ability.lua +73 -2
  106. package/engine/internal/unit+bonus.lua +3 -3
  107. package/engine/internal/unit+damage.d.ts +9 -0
  108. package/engine/internal/unit+damage.lua +33 -0
  109. package/engine/internal/unit+rally.lua +9 -31
  110. package/engine/internal/unit-missile-data.lua +96 -68
  111. package/engine/internal/unit-missile-launch.lua +25 -18
  112. package/engine/internal/unit.d.ts +4 -19
  113. package/engine/internal/unit.lua +132 -221
  114. package/engine/lightning.lua +4 -4
  115. package/engine/local-client.d.ts +27 -1
  116. package/engine/local-client.lua +298 -58
  117. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  118. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  119. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  120. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  121. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  122. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  123. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  124. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  125. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  126. package/engine/object-data/auxiliary/item-class.lua +2 -0
  127. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  128. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  129. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  130. package/engine/object-data/auxiliary/order-type.lua +2 -0
  131. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  132. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  133. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  134. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  135. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  136. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  137. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  138. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  139. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  140. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  141. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  142. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  143. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  144. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  145. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  146. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  147. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  148. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  149. package/engine/object-data/entry/ability-type/blank-configurable.lua +2 -2
  150. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  151. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  152. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  153. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  154. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  155. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  156. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  157. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  158. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  159. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  160. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  161. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  162. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  163. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  164. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  165. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  166. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  167. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  168. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  169. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  170. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  171. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  172. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  173. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  174. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  175. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  176. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  177. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  178. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  179. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  180. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  181. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  182. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  183. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  184. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  185. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  186. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  187. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  188. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  189. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  190. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  191. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  192. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  193. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  194. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  195. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  196. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  197. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  198. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  199. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  200. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  201. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  202. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  203. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  204. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  205. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  206. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  207. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  208. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  209. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  210. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  211. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  212. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  213. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  214. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  215. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  216. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  217. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  218. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  219. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  220. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  221. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  222. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  223. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  224. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  225. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  226. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  227. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  228. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  229. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  230. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  232. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  234. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  235. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  236. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  237. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  238. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  239. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  240. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  241. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  242. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  243. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  244. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  245. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  246. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  247. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  248. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  249. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  250. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  251. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  252. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  253. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  254. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  255. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  256. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  257. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  258. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  259. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  260. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  261. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  262. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  263. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  264. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  265. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  266. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  267. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  268. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  269. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  270. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  271. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  272. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  273. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  274. package/engine/object-data/entry/ability-type.d.ts +35 -8
  275. package/engine/object-data/entry/ability-type.lua +299 -11
  276. package/engine/object-data/entry/buff-type/applicable.lua +122 -111
  277. package/engine/object-data/entry/buff-type.d.ts +6 -2
  278. package/engine/object-data/entry/buff-type.lua +26 -0
  279. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  280. package/engine/object-data/entry/destructible-type.lua +181 -0
  281. package/engine/object-data/entry/item-type.d.ts +18 -3
  282. package/engine/object-data/entry/item-type.lua +84 -0
  283. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  284. package/engine/object-data/entry/lightning-type.lua +1 -1
  285. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  286. package/engine/object-data/entry/unit-type.d.ts +57 -2
  287. package/engine/object-data/entry/unit-type.lua +412 -64
  288. package/engine/object-data/entry/upgrade.d.ts +2 -2
  289. package/engine/object-data/entry.d.ts +6 -1
  290. package/engine/object-data/entry.lua +8 -0
  291. package/engine/object-field/ability.lua +2 -2
  292. package/engine/object-field/item.d.ts +22 -0
  293. package/engine/object-field/item.lua +118 -0
  294. package/engine/object-field/unit.d.ts +7 -4
  295. package/engine/object-field/unit.lua +4 -0
  296. package/engine/object-field.d.ts +3 -1
  297. package/engine/object-field.lua +177 -119
  298. package/engine/random.d.ts +1 -0
  299. package/engine/random.lua +8 -0
  300. package/engine/standard/entries/ability-type.d.ts +3102 -7
  301. package/engine/standard/entries/ability-type.lua +0 -6
  302. package/engine/standard/entries/buff-type.d.ts +45 -0
  303. package/engine/standard/entries/buff-type.lua +43 -0
  304. package/engine/standard/entries/item-type.d.ts +1299 -0
  305. package/engine/standard/entries/item-type.lua +2 -0
  306. package/engine/standard/entries/lightning-type.d.ts +42 -15
  307. package/engine/standard/entries/lightning-type.lua +0 -14
  308. package/engine/standard/entries/unit-type.d.ts +5 -0
  309. package/engine/standard/entries/unit-type.lua +5 -0
  310. package/engine/standard/fields/ability.d.ts +2 -2
  311. package/engine/standard/fields/ability.lua +2 -2
  312. package/engine/standard/fields/item.d.ts +4 -0
  313. package/engine/standard/fields/item.lua +6 -0
  314. package/engine/standard/fields/unit.d.ts +11 -5
  315. package/engine/standard/fields/unit.lua +13 -4
  316. package/engine/text-tag.d.ts +17 -1
  317. package/engine/text-tag.lua +77 -40
  318. package/engine/unit.d.ts +8 -1
  319. package/engine/unit.lua +8 -1
  320. package/event.d.ts +1 -1
  321. package/lualib_bundle.lua +1 -1
  322. package/math.d.ts +2 -0
  323. package/math.lua +14 -0
  324. package/network.lua +25 -1
  325. package/objutil/buff.lua +10 -8
  326. package/objutil/object.lua +1 -1
  327. package/operation.d.ts +8 -1
  328. package/operation.lua +38 -18
  329. package/package.json +3 -23
  330. package/patch-lua.lua +15 -0
  331. package/utility/arrays.d.ts +7 -1
  332. package/utility/arrays.lua +17 -0
  333. package/utility/linked-map.d.ts +35 -0
  334. package/utility/linked-map.lua +107 -0
  335. package/utility/linked-set.d.ts +3 -1
  336. package/utility/linked-set.lua +27 -0
  337. package/utility/random.d.ts +102 -0
  338. package/utility/random.lua +273 -0
  339. package/utility/records.lua +20 -1
  340. package/utility/unordered-map.d.ts +27 -0
  341. package/utility/unordered-map.lua +99 -0
  342. package/engine/internal/unit/item.lua +0 -78
  343. /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
  344. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  345. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  346. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -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;
@@ -31,16 +32,24 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
31
32
  set casterCastingEffectPresets(casterCastingEffectPresets: EffectPresetWithParametersInput[]);
32
33
  get casterChannelingEffectPresets(): EffectPresetWithParameters[];
33
34
  set casterChannelingEffectPresets(casterChannelingEffectPresets: EffectPresetWithParametersInput[]);
34
- get casterAttachmentPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2>;
35
- set casterAttachmentPresets(casterAttachmentPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2>);
35
+ get casterEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2>;
36
+ set casterEffectPresets(casterEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2>);
36
37
  get effectModelPaths(): string[];
37
38
  set effectModelPaths(effectModelPaths: string[]);
39
+ get effectModelPathsSD(): string[];
40
+ set effectModelPathsSD(effectModelPathsSD: string[]);
41
+ get effectModelPathsHD(): string[];
42
+ set effectModelPathsHD(effectModelPathsHD: string[]);
43
+ get effectModelPathsDE(): string[];
44
+ set effectModelPathsDE(effectModelPathsDE: string[]);
38
45
  get iconPath(): string;
39
46
  set iconPath(iconPath: string);
40
47
  get iconPathSD(): string;
41
48
  set iconPathSD(iconPathSD: string);
42
49
  get iconPathHD(): string;
43
50
  set iconPathHD(iconPathHD: string);
51
+ get iconPathDE(): string;
52
+ set iconPathDE(iconPathDE: string);
44
53
  get isButtonVisible(): boolean;
45
54
  set isButtonVisible(isButtonVisible: boolean);
46
55
  get isMissileHoming(): boolean;
@@ -59,20 +68,36 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
59
68
  set missileModelPathSD(missileModelPathSD: string);
60
69
  get missileModelPathHD(): string;
61
70
  set missileModelPathHD(missileModelPathHD: string);
71
+ get missileModelPathDE(): string;
72
+ set missileModelPathDE(missileModelPathDE: string);
62
73
  get missileMovementArc(): number;
63
74
  set missileMovementArc(missileMovementArc: number);
64
75
  get missileMovementSpeed(): number;
65
76
  set missileMovementSpeed(missileMovementSpeed: number);
66
- get specialAttachmentPreset(): EffectPresetWithParameters | undefined;
67
- set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
77
+ /** Model paths of the special art (`asat`); Flame Strike, for one, uses three. */
78
+ get specialEffectModelPaths(): string[];
79
+ set specialEffectModelPaths(specialEffectModelPaths: string[]);
80
+ /** Where the special art attaches (`aspt`), shared by all its models. */
81
+ get specialEffectAttachmentPoint(): AttachmentPoint;
82
+ set specialEffectAttachmentPoint(specialEffectAttachmentPoint: AttachmentPointInput);
68
83
  get targetCastingEffectPresets(): EffectPresetWithParameters[];
69
84
  set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
85
+ get targetChannelingEffectPresets(): EffectPresetWithParameters[];
86
+ set targetChannelingEffectPresets(targetChannelingEffectPresets: EffectPresetWithParametersInput[]);
87
+ get targetChannelingEffectPresetsSD(): EffectPresetWithParameters[];
88
+ set targetChannelingEffectPresetsSD(targetChannelingEffectPresetsSD: EffectPresetWithParametersInput[]);
89
+ get targetChannelingEffectPresetsHD(): EffectPresetWithParameters[];
90
+ set targetChannelingEffectPresetsHD(targetChannelingEffectPresetsHD: EffectPresetWithParametersInput[]);
91
+ get targetChannelingEffectPresetsDE(): EffectPresetWithParameters[];
92
+ set targetChannelingEffectPresetsDE(targetChannelingEffectPresetsDE: EffectPresetWithParametersInput[]);
70
93
  get targetEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
71
94
  set targetEffectPresets(targetEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
72
95
  get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
73
96
  set targetEffectPresetsSD(targetEffectPresetsSD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
74
97
  get targetEffectPresetsHD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
75
98
  set targetEffectPresetsHD(targetEffectPresetsHD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
99
+ get targetEffectPresetsDE(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
100
+ set targetEffectPresetsDE(targetEffectPresetsDE: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
76
101
  get turnOffButtonPositionX(): number;
77
102
  set turnOffButtonPositionX(buttonPositionX: number);
78
103
  get turnOffButtonPositionY(): number;
@@ -135,6 +160,8 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
135
160
  set effectBuffTypeIds(effectBuffTypeIds: ObjectDataEntryLevelFieldValueSupplier<BuffTypeId[]>);
136
161
  get heroBuffDuration(): number[];
137
162
  set heroBuffDuration(heroBuffDuration: ObjectDataEntryLevelFieldValueSupplier<number>);
163
+ get isHeroAbility(): boolean;
164
+ set isHeroAbility(isHeroAbility: boolean);
138
165
  get learnLevelMinimum(): number;
139
166
  set learnLevelMinimum(learnLevelMinimum: number);
140
167
  get learnLevelStep(): 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
@@ -40,11 +43,17 @@ local Sound3D = ____sound.Sound3D
40
43
  local SoundSettings = ____sound.SoundSettings
41
44
  local ____lua_2Dsets = require("utility.lua-sets")
42
45
  local luaSetOf = ____lua_2Dsets.luaSetOf
46
+ local ____local_2Dclient = require("engine.local-client")
47
+ local LocalClient = ____local_2Dclient.LocalClient
43
48
  local castAnimationFQNByAbilityTypeId = {}
44
49
  local isButtonVisibleFalseAbilityTypes = {}
45
50
  local casterCastingEffectPresetsByAbilityTypeId = {}
46
51
  local casterChannelingEffectPresetsByAbilityTypeId = {}
47
52
  local targetCastingEffectPresetsByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
55
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
56
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
48
57
  local targetEffectSoundPresetByAbilityTypeId = {}
49
58
  ____exports.AbilityType = __TS__Class()
50
59
  local AbilityType = ____exports.AbilityType
@@ -141,13 +150,13 @@ __TS__SetDescriptor(
141
150
  )
142
151
  __TS__SetDescriptor(
143
152
  AbilityType.prototype,
144
- "casterAttachmentPresets",
153
+ "casterEffectPresets",
145
154
  {
146
155
  get = function(self)
147
156
  return self:getAttachmentPresetListField("acat", {"acap", "aca1"})
148
157
  end,
149
- set = function(self, casterAttachmentPresets)
150
- self:setAttachmentPresetListField("acat", {"acap", "aca1"}, "acac", casterAttachmentPresets)
158
+ set = function(self, casterEffectPresets)
159
+ self:setAttachmentPresetListField("acat", {"acap", "aca1"}, "acac", casterEffectPresets)
151
160
  end
152
161
  },
153
162
  true
@@ -165,6 +174,45 @@ __TS__SetDescriptor(
165
174
  },
166
175
  true
167
176
  )
177
+ __TS__SetDescriptor(
178
+ AbilityType.prototype,
179
+ "effectModelPathsSD",
180
+ {
181
+ get = function(self)
182
+ return self:getStringsField("aeat:sd")
183
+ end,
184
+ set = function(self, effectModelPathsSD)
185
+ self:setStringsField("aeat:sd", effectModelPathsSD)
186
+ end
187
+ },
188
+ true
189
+ )
190
+ __TS__SetDescriptor(
191
+ AbilityType.prototype,
192
+ "effectModelPathsHD",
193
+ {
194
+ get = function(self)
195
+ return self:getStringsField("aeat:hd")
196
+ end,
197
+ set = function(self, effectModelPathsHD)
198
+ self:setStringsField("aeat:hd", effectModelPathsHD)
199
+ end
200
+ },
201
+ true
202
+ )
203
+ __TS__SetDescriptor(
204
+ AbilityType.prototype,
205
+ "effectModelPathsDE",
206
+ {
207
+ get = function(self)
208
+ return self:getStringsField("aeat:de")
209
+ end,
210
+ set = function(self, effectModelPathsDE)
211
+ self:setStringsField("aeat:de", effectModelPathsDE)
212
+ end
213
+ },
214
+ true
215
+ )
168
216
  __TS__SetDescriptor(
169
217
  AbilityType.prototype,
170
218
  "iconPath",
@@ -204,6 +252,19 @@ __TS__SetDescriptor(
204
252
  },
205
253
  true
206
254
  )
255
+ __TS__SetDescriptor(
256
+ AbilityType.prototype,
257
+ "iconPathDE",
258
+ {
259
+ get = function(self)
260
+ return self:getStringField("aart:de")
261
+ end,
262
+ set = function(self, iconPathDE)
263
+ self:setStringField("aart:de", iconPathDE)
264
+ end
265
+ },
266
+ true
267
+ )
207
268
  __TS__SetDescriptor(
208
269
  AbilityType.prototype,
209
270
  "isButtonVisible",
@@ -326,6 +387,19 @@ __TS__SetDescriptor(
326
387
  },
327
388
  true
328
389
  )
390
+ __TS__SetDescriptor(
391
+ AbilityType.prototype,
392
+ "missileModelPathDE",
393
+ {
394
+ get = function(self)
395
+ return self:getStringField("amat:de")
396
+ end,
397
+ set = function(self, missileModelPathDE)
398
+ self:setStringField("amat:de", missileModelPathDE)
399
+ end
400
+ },
401
+ true
402
+ )
329
403
  __TS__SetDescriptor(
330
404
  AbilityType.prototype,
331
405
  "missileMovementArc",
@@ -354,13 +428,30 @@ __TS__SetDescriptor(
354
428
  )
355
429
  __TS__SetDescriptor(
356
430
  AbilityType.prototype,
357
- "specialAttachmentPreset",
431
+ "specialEffectModelPaths",
432
+ {
433
+ get = function(self)
434
+ return self:getStringsField("asat")
435
+ end,
436
+ set = function(self, specialEffectModelPaths)
437
+ self:setStringsField("asat", specialEffectModelPaths)
438
+ end
439
+ },
440
+ true
441
+ )
442
+ __TS__SetDescriptor(
443
+ AbilityType.prototype,
444
+ "specialEffectAttachmentPoint",
358
445
  {
359
446
  get = function(self)
360
- return self:getAttachmentPresetField("asat", "aspt")
447
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField("aspt"))
448
+ return {nodeName = nodeName, nodeQualifiers = nodeQualifiers}
361
449
  end,
362
- set = function(self, specialAttachmentPreset)
363
- self:setAttachmentPresetField("asat", "aspt", specialAttachmentPreset)
450
+ set = function(self, specialEffectAttachmentPoint)
451
+ self:setStringField(
452
+ "aspt",
453
+ attachmentPointToNodeFQN(specialEffectAttachmentPoint)
454
+ )
364
455
  end
365
456
  },
366
457
  true
@@ -378,6 +469,58 @@ __TS__SetDescriptor(
378
469
  },
379
470
  true
380
471
  )
472
+ __TS__SetDescriptor(
473
+ AbilityType.prototype,
474
+ "targetChannelingEffectPresets",
475
+ {
476
+ get = function(self)
477
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
478
+ end,
479
+ set = function(self, targetChannelingEffectPresets)
480
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
481
+ end
482
+ },
483
+ true
484
+ )
485
+ __TS__SetDescriptor(
486
+ AbilityType.prototype,
487
+ "targetChannelingEffectPresetsSD",
488
+ {
489
+ get = function(self)
490
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
491
+ end,
492
+ set = function(self, targetChannelingEffectPresetsSD)
493
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
494
+ end
495
+ },
496
+ true
497
+ )
498
+ __TS__SetDescriptor(
499
+ AbilityType.prototype,
500
+ "targetChannelingEffectPresetsHD",
501
+ {
502
+ get = function(self)
503
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
504
+ end,
505
+ set = function(self, targetChannelingEffectPresetsHD)
506
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
507
+ end
508
+ },
509
+ true
510
+ )
511
+ __TS__SetDescriptor(
512
+ AbilityType.prototype,
513
+ "targetChannelingEffectPresetsDE",
514
+ {
515
+ get = function(self)
516
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
517
+ end,
518
+ set = function(self, targetChannelingEffectPresetsDE)
519
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
520
+ end
521
+ },
522
+ true
523
+ )
381
524
  __TS__SetDescriptor(
382
525
  AbilityType.prototype,
383
526
  "targetEffectPresets",
@@ -459,6 +602,33 @@ __TS__SetDescriptor(
459
602
  },
460
603
  true
461
604
  )
605
+ __TS__SetDescriptor(
606
+ AbilityType.prototype,
607
+ "targetEffectPresetsDE",
608
+ {
609
+ get = function(self)
610
+ return self:getAttachmentPresetListField(
611
+ "atat:de",
612
+ array(
613
+ 6,
614
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
615
+ )
616
+ )
617
+ end,
618
+ set = function(self, targetEffectPresetsDE)
619
+ self:setAttachmentPresetListField(
620
+ "atat:de",
621
+ array(
622
+ 6,
623
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
624
+ ),
625
+ "atac:de",
626
+ targetEffectPresetsDE
627
+ )
628
+ end
629
+ },
630
+ true
631
+ )
462
632
  __TS__SetDescriptor(
463
633
  AbilityType.prototype,
464
634
  "turnOffButtonPositionX",
@@ -891,6 +1061,19 @@ __TS__SetDescriptor(
891
1061
  },
892
1062
  true
893
1063
  )
1064
+ __TS__SetDescriptor(
1065
+ AbilityType.prototype,
1066
+ "isHeroAbility",
1067
+ {
1068
+ get = function(self)
1069
+ return self:getBooleanField("aher")
1070
+ end,
1071
+ set = function(self, isHeroAbility)
1072
+ self:setBooleanField("aher", isHeroAbility)
1073
+ end
1074
+ },
1075
+ true
1076
+ )
894
1077
  __TS__SetDescriptor(
895
1078
  AbilityType.prototype,
896
1079
  "learnLevelMinimum",
@@ -1099,18 +1282,123 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1099
1282
  end
1100
1283
  casterChannelingEffectsByCaster[caster] = effects
1101
1284
  end
1285
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1286
+ local function toData(presets)
1287
+ if presets == nil then
1288
+ return nil
1289
+ end
1290
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1291
+ local parameters = map(presets, "parameters")
1292
+ return {
1293
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1294
+ attachmentPoints = __TS__ArraySome(
1295
+ attachmentPoints,
1296
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1297
+ ) and attachmentPoints or nil,
1298
+ parameters = __TS__ArraySome(
1299
+ presets,
1300
+ function(____, preset) return preset.parameters ~= nil end
1301
+ ) and parameters or nil
1302
+ }
1303
+ end
1304
+ local abilityTypeIds = {}
1305
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1306
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1307
+ abilityTypeIds[abilityTypeId] = true
1308
+ end
1309
+ end
1310
+ local result = {}
1311
+ for abilityTypeId in pairs(abilityTypeIds) do
1312
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1313
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1314
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1315
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1316
+ local ____math_max_8 = math.max
1317
+ local ____opt_0 = presetsSD or presets
1318
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1319
+ local ____opt_2 = presetsHD or presets
1320
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1321
+ local ____opt_4 = presetsDE or presets
1322
+ result[abilityTypeId] = {
1323
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1324
+ data = toData(presets),
1325
+ dataSD = toData(presetsSD),
1326
+ dataHD = toData(presetsHD),
1327
+ dataDE = toData(presetsDE)
1328
+ }
1329
+ end
1330
+ return result
1331
+ end)
1332
+ local targetChannelingEffectsByCaster = {}
1333
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1334
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1335
+ if effectsData == nil then
1336
+ return
1337
+ end
1338
+ local graphicsMode = LocalClient.graphicsMode
1339
+ local ____temp_10
1340
+ if graphicsMode == 0 then
1341
+ ____temp_10 = effectsData.dataSD
1342
+ else
1343
+ local ____temp_9
1344
+ if graphicsMode == 1 then
1345
+ ____temp_9 = effectsData.dataHD
1346
+ else
1347
+ ____temp_9 = effectsData.dataDE
1348
+ end
1349
+ ____temp_10 = ____temp_9
1350
+ end
1351
+ local data = ____temp_10 or effectsData.data
1352
+ local modelPaths = data and data.modelPaths
1353
+ local attachmentPoints = data and data.attachmentPoints
1354
+ local parameters = data and data.parameters
1355
+ local effects = {}
1356
+ for i = 1, effectsData.effectCount do
1357
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1358
+ local effectParameters = parameters and parameters[i]
1359
+ if type(xOrWidget) == "number" then
1360
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1361
+ else
1362
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1363
+ if attachmentPoint == nil or attachmentPoint == "" then
1364
+ attachmentPoint = "origin"
1365
+ end
1366
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1367
+ end
1368
+ end
1369
+ targetChannelingEffectsByCaster[caster] = effects
1370
+ end
1371
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1372
+ createTargetChannelingEffects(caster, ability.typeId, target)
1373
+ end
1374
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1375
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1376
+ end
1102
1377
  local function handleAbilityStopChannelingEvent(caster)
1103
- local effects = casterChannelingEffectsByCaster[caster]
1104
- if effects ~= nil then
1105
- for i = 1, #effects do
1106
- effects[i]:destroy()
1378
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1379
+ if casterEffects ~= nil then
1380
+ for i = 1, #casterEffects do
1381
+ casterEffects[i]:destroy()
1107
1382
  end
1108
1383
  casterChannelingEffectsByCaster[caster] = nil
1109
1384
  end
1385
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1386
+ if targetEffects ~= nil then
1387
+ for i = 1, #targetEffects do
1388
+ targetEffects[i]:destroy()
1389
+ end
1390
+ targetChannelingEffectsByCaster[caster] = nil
1391
+ end
1110
1392
  end
1111
1393
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1112
1394
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1113
1395
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1114
1396
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1115
1397
  end
1398
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1399
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1400
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1401
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1402
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1403
+ end
1116
1404
  return ____exports