warscript 0.0.1-dev.91a4dce → 0.0.1-dev.9381e62

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 (329) 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 +1 -0
  5. package/core/types/frame.lua +112 -37
  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/player.d.ts +4 -2
  10. package/core/types/player.lua +42 -25
  11. package/core/types/playerColor.lua +4 -3
  12. package/core/types/sound.d.ts +1 -1
  13. package/core/types/sound.lua +14 -9
  14. package/core/types/tileCell.d.ts +2 -1
  15. package/core/types/tileCell.lua +5 -0
  16. package/core/types/unit.d.ts +5 -0
  17. package/core/types/unit.lua +5 -0
  18. package/core/util.d.ts +3 -1
  19. package/core/util.lua +109 -3
  20. package/decl/native.d.ts +705 -7
  21. package/destroyable.d.ts +1 -0
  22. package/destroyable.lua +9 -0
  23. package/engine/behavior.d.ts +10 -2
  24. package/engine/behavior.lua +157 -76
  25. package/engine/behaviour/ability/apply-buff.lua +4 -4
  26. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  27. package/engine/behaviour/ability/damage.d.ts +4 -0
  28. package/engine/behaviour/ability/damage.lua +19 -15
  29. package/engine/behaviour/ability/emulate-impact.lua +5 -4
  30. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  31. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  32. package/engine/behaviour/ability.d.ts +13 -6
  33. package/engine/behaviour/ability.lua +56 -1
  34. package/engine/behaviour/unit/stun-immunity.d.ts +7 -5
  35. package/engine/behaviour/unit/stun-immunity.lua +6 -5
  36. package/engine/behaviour/unit.d.ts +8 -3
  37. package/engine/behaviour/unit.lua +102 -24
  38. package/engine/buff.d.ts +73 -24
  39. package/engine/buff.lua +418 -166
  40. package/engine/index.d.ts +2 -1
  41. package/engine/internal/ability.d.ts +4 -0
  42. package/engine/internal/ability.lua +56 -36
  43. package/engine/internal/item/fields.d.ts +12 -0
  44. package/engine/internal/item/fields.lua +33 -0
  45. package/engine/internal/item/owner-cache.d.ts +5 -0
  46. package/engine/internal/item/owner-cache.lua +4 -0
  47. package/engine/internal/item+owner.d.ts +2 -0
  48. package/engine/internal/item+owner.lua +27 -4
  49. package/engine/internal/item.d.ts +20 -5
  50. package/engine/internal/item.lua +146 -57
  51. package/engine/internal/mechanics/cast-ability.lua +6 -3
  52. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  53. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  54. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  55. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  56. package/engine/internal/object-data/health-bonus.lua +16 -0
  57. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  58. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  59. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  60. package/engine/internal/object-data/mana-bonus.lua +16 -0
  61. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  62. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  63. package/engine/internal/unit/ability.lua +15 -3
  64. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  65. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  66. package/engine/internal/unit/appearance.d.ts +15 -0
  67. package/engine/internal/unit/appearance.lua +85 -0
  68. package/engine/internal/unit/attributes.d.ts +17 -0
  69. package/engine/internal/unit/attributes.lua +46 -0
  70. package/engine/internal/unit/bonus.d.ts +14 -0
  71. package/engine/internal/unit/bonus.lua +102 -8
  72. package/engine/internal/unit/buff.d.ts +2 -2
  73. package/engine/internal/unit/buff.lua +34 -19
  74. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  75. package/engine/internal/unit/equipment-inventory.lua +233 -0
  76. package/engine/internal/unit/expiration-timer.lua +1 -1
  77. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  78. package/engine/internal/unit/extended-inventory.lua +99 -0
  79. package/engine/internal/unit/fly-height.d.ts +7 -0
  80. package/engine/internal/unit/fly-height.lua +20 -0
  81. package/engine/internal/unit/ignore-events-items.lua +10 -1
  82. package/engine/internal/unit/interrupts.d.ts +12 -0
  83. package/engine/internal/unit/interrupts.lua +28 -0
  84. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  85. package/engine/internal/unit/inventory.lua +87 -0
  86. package/engine/internal/unit/item-container.d.ts +25 -0
  87. package/engine/internal/unit/item-container.lua +11 -0
  88. package/engine/internal/unit/item-order-events.d.ts +17 -0
  89. package/engine/internal/unit/item-order-events.lua +67 -0
  90. package/engine/internal/unit/item-slot.d.ts +27 -0
  91. package/engine/internal/unit/item-slot.lua +92 -0
  92. package/engine/internal/unit/order.d.ts +3 -3
  93. package/engine/internal/unit/order.lua +10 -10
  94. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  95. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  96. package/engine/internal/unit/range-event.d.ts +12 -0
  97. package/engine/internal/unit/range-event.lua +90 -0
  98. package/engine/internal/unit/scale.d.ts +7 -0
  99. package/engine/internal/unit/scale.lua +20 -0
  100. package/engine/internal/unit+ability.d.ts +2 -1
  101. package/engine/internal/unit+ability.lua +63 -2
  102. package/engine/internal/unit+bonus.lua +3 -3
  103. package/engine/internal/unit+damage.d.ts +9 -0
  104. package/engine/internal/unit+damage.lua +33 -0
  105. package/engine/internal/unit+rally.lua +9 -31
  106. package/engine/internal/unit-missile-data.lua +58 -32
  107. package/engine/internal/unit-missile-launch.lua +29 -19
  108. package/engine/internal/unit.d.ts +14 -28
  109. package/engine/internal/unit.lua +158 -247
  110. package/engine/local-client.d.ts +28 -0
  111. package/engine/local-client.lua +324 -54
  112. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  113. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  114. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  115. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  116. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  117. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  118. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  119. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  120. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  121. package/engine/object-data/auxiliary/item-class.lua +2 -0
  122. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  123. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  124. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  125. package/engine/object-data/auxiliary/order-type.lua +2 -0
  126. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  127. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  128. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  129. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  130. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  131. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  132. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  133. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  134. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  135. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  136. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  137. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  138. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  139. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  140. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  141. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  142. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  143. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  144. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  145. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  146. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  147. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  148. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  149. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  150. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  151. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  152. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  153. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  154. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  155. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  156. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  157. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  158. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  159. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  160. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  161. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  162. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  163. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  164. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  165. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  166. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  167. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  168. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  169. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  170. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  171. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  172. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  173. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  174. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  175. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  176. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  177. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  178. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  179. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  180. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  181. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  182. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  183. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  184. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  185. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  186. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  187. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  188. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  189. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  190. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  191. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  192. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  193. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  194. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  195. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  196. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  197. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  198. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  199. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  200. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  201. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  202. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  203. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  204. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  205. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  206. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  207. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  208. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  209. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  210. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  211. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  212. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  213. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  214. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  215. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  216. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  217. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  218. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  219. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  220. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  221. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  222. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  223. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  224. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  225. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  226. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  227. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  228. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  229. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  230. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  231. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  232. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  234. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  235. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  236. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  237. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  238. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  239. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  240. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  241. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  242. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  243. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  244. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  245. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  246. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  247. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  248. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  249. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  250. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  251. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  252. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  253. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  254. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  255. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  256. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  257. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  258. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  259. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  260. package/engine/object-data/entry/ability-type.d.ts +25 -6
  261. package/engine/object-data/entry/ability-type.lua +244 -8
  262. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  263. package/engine/object-data/entry/buff-type.d.ts +6 -2
  264. package/engine/object-data/entry/buff-type.lua +26 -0
  265. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  266. package/engine/object-data/entry/destructible-type.lua +181 -0
  267. package/engine/object-data/entry/item-type.d.ts +18 -3
  268. package/engine/object-data/entry/item-type.lua +84 -0
  269. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  270. package/engine/object-data/entry/lightning-type.lua +1 -1
  271. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  272. package/engine/object-data/entry/unit-type.d.ts +51 -2
  273. package/engine/object-data/entry/unit-type.lua +415 -37
  274. package/engine/object-data/entry/upgrade.d.ts +2 -2
  275. package/engine/object-data/entry.d.ts +6 -1
  276. package/engine/object-data/entry.lua +8 -0
  277. package/engine/object-field/ability.lua +2 -2
  278. package/engine/object-field/item.d.ts +22 -0
  279. package/engine/object-field/item.lua +118 -0
  280. package/engine/object-field/unit.d.ts +20 -5
  281. package/engine/object-field/unit.lua +61 -0
  282. package/engine/object-field.d.ts +10 -2
  283. package/engine/object-field.lua +268 -123
  284. package/engine/random.d.ts +1 -0
  285. package/engine/random.lua +8 -0
  286. package/engine/standard/entries/ability-type.d.ts +3102 -7
  287. package/engine/standard/entries/ability-type.lua +0 -6
  288. package/engine/standard/entries/buff-type.d.ts +45 -0
  289. package/engine/standard/entries/buff-type.lua +43 -0
  290. package/engine/standard/entries/item-type.d.ts +1299 -0
  291. package/engine/standard/entries/item-type.lua +2 -0
  292. package/engine/standard/entries/lightning-type.d.ts +42 -15
  293. package/engine/standard/entries/lightning-type.lua +0 -14
  294. package/engine/standard/entries/unit-type.d.ts +5 -0
  295. package/engine/standard/entries/unit-type.lua +5 -0
  296. package/engine/standard/fields/ability.d.ts +2 -2
  297. package/engine/standard/fields/ability.lua +2 -2
  298. package/engine/standard/fields/item.d.ts +4 -0
  299. package/engine/standard/fields/item.lua +6 -0
  300. package/engine/standard/fields/unit.d.ts +11 -3
  301. package/engine/standard/fields/unit.lua +15 -2
  302. package/engine/text-tag.lua +2 -1
  303. package/engine/unit.d.ts +10 -1
  304. package/engine/unit.lua +10 -1
  305. package/event.d.ts +1 -1
  306. package/lualib_bundle.lua +1 -1
  307. package/math.d.ts +2 -0
  308. package/math.lua +14 -0
  309. package/network.lua +25 -1
  310. package/objutil/buff.lua +10 -8
  311. package/objutil/object.lua +1 -1
  312. package/operation.d.ts +8 -1
  313. package/operation.lua +38 -18
  314. package/package.json +3 -23
  315. package/patch-lua.lua +15 -0
  316. package/utility/linked-map.d.ts +35 -0
  317. package/utility/linked-map.lua +107 -0
  318. package/utility/linked-set.d.ts +3 -1
  319. package/utility/linked-set.lua +27 -0
  320. package/utility/random.d.ts +102 -0
  321. package/utility/random.lua +273 -0
  322. package/utility/records.lua +20 -1
  323. package/utility/unordered-map.d.ts +27 -0
  324. package/utility/unordered-map.lua +99 -0
  325. package/engine/internal/unit/item.lua +0 -78
  326. /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
  327. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  328. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  329. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,104 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.ValiantChargeAbilityType = __TS__Class()
9
+ local ValiantChargeAbilityType = ____exports.ValiantChargeAbilityType
10
+ ValiantChargeAbilityType.name = "ValiantChargeAbilityType"
11
+ __TS__ClassExtends(ValiantChargeAbilityType, AbilityType)
12
+ ValiantChargeAbilityType.BASE_ID = fourCC("AHch")
13
+ __TS__SetDescriptor(
14
+ ValiantChargeAbilityType.prototype,
15
+ "targetIntersectRadius",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("chra")
19
+ end,
20
+ set = function(self, targetIntersectRadius)
21
+ self:setNumberLevelField("chra", targetIntersectRadius)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ __TS__SetDescriptor(
27
+ ValiantChargeAbilityType.prototype,
28
+ "dashSpeed",
29
+ {
30
+ get = function(self)
31
+ return self:getNumberLevelField("chr1")
32
+ end,
33
+ set = function(self, dashSpeed)
34
+ self:setNumberLevelField("chr1", dashSpeed)
35
+ end
36
+ },
37
+ true
38
+ )
39
+ __TS__SetDescriptor(
40
+ ValiantChargeAbilityType.prototype,
41
+ "dashDamage",
42
+ {
43
+ get = function(self)
44
+ return self:getNumberLevelField("chr2")
45
+ end,
46
+ set = function(self, dashDamage)
47
+ self:setNumberLevelField("chr2", dashDamage)
48
+ end
49
+ },
50
+ true
51
+ )
52
+ __TS__SetDescriptor(
53
+ ValiantChargeAbilityType.prototype,
54
+ "bonusCriticalStrike",
55
+ {
56
+ get = function(self)
57
+ return self:getNumberLevelField("chr3")
58
+ end,
59
+ set = function(self, bonusCriticalStrike)
60
+ self:setNumberLevelField("chr3", bonusCriticalStrike)
61
+ end
62
+ },
63
+ true
64
+ )
65
+ __TS__SetDescriptor(
66
+ ValiantChargeAbilityType.prototype,
67
+ "bonusCriticalStrikeDuration",
68
+ {
69
+ get = function(self)
70
+ return self:getNumberLevelField("chr4")
71
+ end,
72
+ set = function(self, bonusCriticalStrikeDuration)
73
+ self:setNumberLevelField("chr4", bonusCriticalStrikeDuration)
74
+ end
75
+ },
76
+ true
77
+ )
78
+ __TS__SetDescriptor(
79
+ ValiantChargeAbilityType.prototype,
80
+ "bonusCriticalStrikeHeroDuration",
81
+ {
82
+ get = function(self)
83
+ return self:getNumberLevelField("chr5")
84
+ end,
85
+ set = function(self, bonusCriticalStrikeHeroDuration)
86
+ self:setNumberLevelField("chr5", bonusCriticalStrikeHeroDuration)
87
+ end
88
+ },
89
+ true
90
+ )
91
+ __TS__SetDescriptor(
92
+ ValiantChargeAbilityType.prototype,
93
+ "removesBuffsOnStart",
94
+ {
95
+ get = function(self)
96
+ return self:getBooleanLevelField("chr6")
97
+ end,
98
+ set = function(self, removesBuffsOnStart)
99
+ self:setBooleanLevelField("chr6", removesBuffsOnStart)
100
+ end
101
+ },
102
+ true
103
+ )
104
+ return ____exports
@@ -0,0 +1,9 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class WarcryAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ /** Bonus Abilities List */
7
+ get bonusAbilityTypeIds(): AbilityTypeId[][];
8
+ set bonusAbilityTypeIds(bonusAbilityTypeIds: ObjectDataEntryLevelFieldValueSupplier<AbilityTypeId[]>);
9
+ }
@@ -0,0 +1,26 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.WarcryAbilityType = __TS__Class()
9
+ local WarcryAbilityType = ____exports.WarcryAbilityType
10
+ WarcryAbilityType.name = "WarcryAbilityType"
11
+ __TS__ClassExtends(WarcryAbilityType, AbilityType)
12
+ WarcryAbilityType.BASE_ID = fourCC("AHwc")
13
+ __TS__SetDescriptor(
14
+ WarcryAbilityType.prototype,
15
+ "bonusAbilityTypeIds",
16
+ {
17
+ get = function(self)
18
+ return self:getObjectDataEntryNumericIdsLevelField("hwc1")
19
+ end,
20
+ set = function(self, bonusAbilityTypeIds)
21
+ self:setObjectDataEntryNumericIdsLevelField("hwc1", bonusAbilityTypeIds)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ return ____exports
@@ -0,0 +1,21 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class WitheringFireAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ /** Max Charges */
7
+ get maximumCharges(): number[];
8
+ set maximumCharges(maximumCharges: ObjectDataEntryLevelFieldValueSupplier<number>);
9
+ /** Charge Regen Time */
10
+ get chargeRegenerationTime(): number[];
11
+ set chargeRegenerationTime(chargeRegenerationTime: ObjectDataEntryLevelFieldValueSupplier<number>);
12
+ /** Damage */
13
+ get damage(): number[];
14
+ set damage(damage: ObjectDataEntryLevelFieldValueSupplier<number>);
15
+ /** Target Armor Reduction */
16
+ get targetArmorReduction(): number[];
17
+ set targetArmorReduction(targetArmorReduction: ObjectDataEntryLevelFieldValueSupplier<number>);
18
+ /** Cooldown Reduction On Auto Attack */
19
+ get cooldownReductionOnAutoAttack(): number[];
20
+ set cooldownReductionOnAutoAttack(cooldownReductionOnAutoAttack: ObjectDataEntryLevelFieldValueSupplier<number>);
21
+ }
@@ -0,0 +1,78 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.WitheringFireAbilityType = __TS__Class()
9
+ local WitheringFireAbilityType = ____exports.WitheringFireAbilityType
10
+ WitheringFireAbilityType.name = "WitheringFireAbilityType"
11
+ __TS__ClassExtends(WitheringFireAbilityType, AbilityType)
12
+ WitheringFireAbilityType.BASE_ID = fourCC("AUwf")
13
+ __TS__SetDescriptor(
14
+ WitheringFireAbilityType.prototype,
15
+ "maximumCharges",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("uwf1")
19
+ end,
20
+ set = function(self, maximumCharges)
21
+ self:setNumberLevelField("uwf1", maximumCharges)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ __TS__SetDescriptor(
27
+ WitheringFireAbilityType.prototype,
28
+ "chargeRegenerationTime",
29
+ {
30
+ get = function(self)
31
+ return self:getNumberLevelField("uwf2")
32
+ end,
33
+ set = function(self, chargeRegenerationTime)
34
+ self:setNumberLevelField("uwf2", chargeRegenerationTime)
35
+ end
36
+ },
37
+ true
38
+ )
39
+ __TS__SetDescriptor(
40
+ WitheringFireAbilityType.prototype,
41
+ "damage",
42
+ {
43
+ get = function(self)
44
+ return self:getNumberLevelField("uwf3")
45
+ end,
46
+ set = function(self, damage)
47
+ self:setNumberLevelField("uwf3", damage)
48
+ end
49
+ },
50
+ true
51
+ )
52
+ __TS__SetDescriptor(
53
+ WitheringFireAbilityType.prototype,
54
+ "targetArmorReduction",
55
+ {
56
+ get = function(self)
57
+ return self:getNumberLevelField("uwf4")
58
+ end,
59
+ set = function(self, targetArmorReduction)
60
+ self:setNumberLevelField("uwf4", targetArmorReduction)
61
+ end
62
+ },
63
+ true
64
+ )
65
+ __TS__SetDescriptor(
66
+ WitheringFireAbilityType.prototype,
67
+ "cooldownReductionOnAutoAttack",
68
+ {
69
+ get = function(self)
70
+ return self:getNumberLevelField("uwf5")
71
+ end,
72
+ set = function(self, cooldownReductionOnAutoAttack)
73
+ self:setNumberLevelField("uwf5", cooldownReductionOnAutoAttack)
74
+ end
75
+ },
76
+ true
77
+ )
78
+ return ____exports
@@ -3,17 +3,18 @@ import "../../internal/unit/ability";
3
3
  import { TupleOf } from "../../../utility/types";
4
4
  import { AnimationName } from "../auxiliary/animation-name";
5
5
  import { AnimationQualifier } from "../auxiliary/animation-qualifier";
6
- import { AttachmentPresetInput, EffectPresetWithParameters, EffectPresetWithParametersInput } from "../auxiliary/attachment-preset";
6
+ import { AttachmentPoint, AttachmentPointInput, AttachmentPresetInput, EffectPresetWithParameters, EffectPresetWithParametersInput } from "../auxiliary/attachment-preset";
7
7
  import { CombatClassifications } from "../auxiliary/combat-classification";
8
8
  import { Race } from "../auxiliary/race";
9
9
  import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency";
10
- import { ObjectDataEntry, ObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
10
+ import { ObjectDataEntry, CustomObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
11
11
  import { BuffTypeId } from "./buff-type";
12
12
  import { LightningTypeId } from "./lightning-type";
13
13
  import { SoundPresetId } from "./sound-preset";
14
- export type AbilityTypeId = ObjectDataEntryId & number & {
14
+ import { StandardAbilityTypeId } from "../../standard/entries/ability-type";
15
+ export type AbilityTypeId = (CustomObjectDataEntryId & number & {
15
16
  readonly __abilityTypeId: unique symbol;
16
- };
17
+ }) | StandardAbilityTypeId;
17
18
  export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId> {
18
19
  private static readonly idGenerator;
19
20
  protected static generateId(): number;
@@ -41,6 +42,8 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
41
42
  set iconPathSD(iconPathSD: string);
42
43
  get iconPathHD(): string;
43
44
  set iconPathHD(iconPathHD: string);
45
+ get iconPathDE(): string;
46
+ set iconPathDE(iconPathDE: string);
44
47
  get isButtonVisible(): boolean;
45
48
  set isButtonVisible(isButtonVisible: boolean);
46
49
  get isMissileHoming(): boolean;
@@ -59,20 +62,36 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
59
62
  set missileModelPathSD(missileModelPathSD: string);
60
63
  get missileModelPathHD(): string;
61
64
  set missileModelPathHD(missileModelPathHD: string);
65
+ get missileModelPathDE(): string;
66
+ set missileModelPathDE(missileModelPathDE: string);
62
67
  get missileMovementArc(): number;
63
68
  set missileMovementArc(missileMovementArc: number);
64
69
  get missileMovementSpeed(): number;
65
70
  set missileMovementSpeed(missileMovementSpeed: number);
66
- get specialAttachmentPreset(): EffectPresetWithParameters | undefined;
67
- set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
71
+ /** Model paths of the special art (`asat`); Flame Strike, for one, uses three. */
72
+ get specialEffectModelPaths(): string[];
73
+ set specialEffectModelPaths(specialEffectModelPaths: string[]);
74
+ /** Where the special art attaches (`aspt`), shared by all its models. */
75
+ get specialEffectAttachmentPoint(): AttachmentPoint;
76
+ set specialEffectAttachmentPoint(specialEffectAttachmentPoint: AttachmentPointInput);
68
77
  get targetCastingEffectPresets(): EffectPresetWithParameters[];
69
78
  set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
79
+ get targetChannelingEffectPresets(): EffectPresetWithParameters[];
80
+ set targetChannelingEffectPresets(targetChannelingEffectPresets: EffectPresetWithParametersInput[]);
81
+ get targetChannelingEffectPresetsSD(): EffectPresetWithParameters[];
82
+ set targetChannelingEffectPresetsSD(targetChannelingEffectPresetsSD: EffectPresetWithParametersInput[]);
83
+ get targetChannelingEffectPresetsHD(): EffectPresetWithParameters[];
84
+ set targetChannelingEffectPresetsHD(targetChannelingEffectPresetsHD: EffectPresetWithParametersInput[]);
85
+ get targetChannelingEffectPresetsDE(): EffectPresetWithParameters[];
86
+ set targetChannelingEffectPresetsDE(targetChannelingEffectPresetsDE: EffectPresetWithParametersInput[]);
70
87
  get targetEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
71
88
  set targetEffectPresets(targetEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
72
89
  get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
73
90
  set targetEffectPresetsSD(targetEffectPresetsSD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
74
91
  get targetEffectPresetsHD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
75
92
  set targetEffectPresetsHD(targetEffectPresetsHD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
93
+ get targetEffectPresetsDE(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
94
+ set targetEffectPresetsDE(targetEffectPresetsDE: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
76
95
  get turnOffButtonPositionX(): number;
77
96
  set turnOffButtonPositionX(buttonPositionX: number);
78
97
  get turnOffButtonPositionY(): number;
@@ -3,6 +3,7 @@ local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
6
7
  local ____exports = {}
7
8
  local ____unit = require("engine.internal.unit")
8
9
  local Unit = ____unit.Unit
@@ -18,8 +19,10 @@ local array = ____arrays.array
18
19
  local map = ____arrays.map
19
20
  local mapIndexed = ____arrays.mapIndexed
20
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
22
+ local attachmentPointToNodeFQN = ____attachment_2Dpreset.attachmentPointToNodeFQN
21
23
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
22
24
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
25
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
23
26
  local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
24
27
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
25
28
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
@@ -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
@@ -204,6 +213,19 @@ __TS__SetDescriptor(
204
213
  },
205
214
  true
206
215
  )
216
+ __TS__SetDescriptor(
217
+ AbilityType.prototype,
218
+ "iconPathDE",
219
+ {
220
+ get = function(self)
221
+ return self:getStringField("aart:de")
222
+ end,
223
+ set = function(self, iconPathDE)
224
+ self:setStringField("aart:de", iconPathDE)
225
+ end
226
+ },
227
+ true
228
+ )
207
229
  __TS__SetDescriptor(
208
230
  AbilityType.prototype,
209
231
  "isButtonVisible",
@@ -326,6 +348,19 @@ __TS__SetDescriptor(
326
348
  },
327
349
  true
328
350
  )
351
+ __TS__SetDescriptor(
352
+ AbilityType.prototype,
353
+ "missileModelPathDE",
354
+ {
355
+ get = function(self)
356
+ return self:getStringField("amat:de")
357
+ end,
358
+ set = function(self, missileModelPathDE)
359
+ self:setStringField("amat:de", missileModelPathDE)
360
+ end
361
+ },
362
+ true
363
+ )
329
364
  __TS__SetDescriptor(
330
365
  AbilityType.prototype,
331
366
  "missileMovementArc",
@@ -354,13 +389,30 @@ __TS__SetDescriptor(
354
389
  )
355
390
  __TS__SetDescriptor(
356
391
  AbilityType.prototype,
357
- "specialAttachmentPreset",
392
+ "specialEffectModelPaths",
393
+ {
394
+ get = function(self)
395
+ return self:getStringsField("asat")
396
+ end,
397
+ set = function(self, specialEffectModelPaths)
398
+ self:setStringsField("asat", specialEffectModelPaths)
399
+ end
400
+ },
401
+ true
402
+ )
403
+ __TS__SetDescriptor(
404
+ AbilityType.prototype,
405
+ "specialEffectAttachmentPoint",
358
406
  {
359
407
  get = function(self)
360
- return self:getAttachmentPresetField("asat", "aspt")
408
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField("aspt"))
409
+ return {nodeName = nodeName, nodeQualifiers = nodeQualifiers}
361
410
  end,
362
- set = function(self, specialAttachmentPreset)
363
- self:setAttachmentPresetField("asat", "aspt", specialAttachmentPreset)
411
+ set = function(self, specialEffectAttachmentPoint)
412
+ self:setStringField(
413
+ "aspt",
414
+ attachmentPointToNodeFQN(specialEffectAttachmentPoint)
415
+ )
364
416
  end
365
417
  },
366
418
  true
@@ -378,6 +430,58 @@ __TS__SetDescriptor(
378
430
  },
379
431
  true
380
432
  )
433
+ __TS__SetDescriptor(
434
+ AbilityType.prototype,
435
+ "targetChannelingEffectPresets",
436
+ {
437
+ get = function(self)
438
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
439
+ end,
440
+ set = function(self, targetChannelingEffectPresets)
441
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
442
+ end
443
+ },
444
+ true
445
+ )
446
+ __TS__SetDescriptor(
447
+ AbilityType.prototype,
448
+ "targetChannelingEffectPresetsSD",
449
+ {
450
+ get = function(self)
451
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
452
+ end,
453
+ set = function(self, targetChannelingEffectPresetsSD)
454
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
455
+ end
456
+ },
457
+ true
458
+ )
459
+ __TS__SetDescriptor(
460
+ AbilityType.prototype,
461
+ "targetChannelingEffectPresetsHD",
462
+ {
463
+ get = function(self)
464
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
465
+ end,
466
+ set = function(self, targetChannelingEffectPresetsHD)
467
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
468
+ end
469
+ },
470
+ true
471
+ )
472
+ __TS__SetDescriptor(
473
+ AbilityType.prototype,
474
+ "targetChannelingEffectPresetsDE",
475
+ {
476
+ get = function(self)
477
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
478
+ end,
479
+ set = function(self, targetChannelingEffectPresetsDE)
480
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
481
+ end
482
+ },
483
+ true
484
+ )
381
485
  __TS__SetDescriptor(
382
486
  AbilityType.prototype,
383
487
  "targetEffectPresets",
@@ -459,6 +563,33 @@ __TS__SetDescriptor(
459
563
  },
460
564
  true
461
565
  )
566
+ __TS__SetDescriptor(
567
+ AbilityType.prototype,
568
+ "targetEffectPresetsDE",
569
+ {
570
+ get = function(self)
571
+ return self:getAttachmentPresetListField(
572
+ "atat:de",
573
+ array(
574
+ 6,
575
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
576
+ )
577
+ )
578
+ end,
579
+ set = function(self, targetEffectPresetsDE)
580
+ self:setAttachmentPresetListField(
581
+ "atat:de",
582
+ array(
583
+ 6,
584
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
585
+ ),
586
+ "atac:de",
587
+ targetEffectPresetsDE
588
+ )
589
+ end
590
+ },
591
+ true
592
+ )
462
593
  __TS__SetDescriptor(
463
594
  AbilityType.prototype,
464
595
  "turnOffButtonPositionX",
@@ -1099,18 +1230,123 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1099
1230
  end
1100
1231
  casterChannelingEffectsByCaster[caster] = effects
1101
1232
  end
1233
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1234
+ local function toData(presets)
1235
+ if presets == nil then
1236
+ return nil
1237
+ end
1238
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1239
+ local parameters = map(presets, "parameters")
1240
+ return {
1241
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1242
+ attachmentPoints = __TS__ArraySome(
1243
+ attachmentPoints,
1244
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1245
+ ) and attachmentPoints or nil,
1246
+ parameters = __TS__ArraySome(
1247
+ presets,
1248
+ function(____, preset) return preset.parameters ~= nil end
1249
+ ) and parameters or nil
1250
+ }
1251
+ end
1252
+ local abilityTypeIds = {}
1253
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1254
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1255
+ abilityTypeIds[abilityTypeId] = true
1256
+ end
1257
+ end
1258
+ local result = {}
1259
+ for abilityTypeId in pairs(abilityTypeIds) do
1260
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1261
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1262
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1263
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1264
+ local ____math_max_8 = math.max
1265
+ local ____opt_0 = presetsSD or presets
1266
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1267
+ local ____opt_2 = presetsHD or presets
1268
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1269
+ local ____opt_4 = presetsDE or presets
1270
+ result[abilityTypeId] = {
1271
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1272
+ data = toData(presets),
1273
+ dataSD = toData(presetsSD),
1274
+ dataHD = toData(presetsHD),
1275
+ dataDE = toData(presetsDE)
1276
+ }
1277
+ end
1278
+ return result
1279
+ end)
1280
+ local targetChannelingEffectsByCaster = {}
1281
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1282
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1283
+ if effectsData == nil then
1284
+ return
1285
+ end
1286
+ local graphicsMode = LocalClient.graphicsMode
1287
+ local ____temp_10
1288
+ if graphicsMode == 0 then
1289
+ ____temp_10 = effectsData.dataSD
1290
+ else
1291
+ local ____temp_9
1292
+ if graphicsMode == 1 then
1293
+ ____temp_9 = effectsData.dataHD
1294
+ else
1295
+ ____temp_9 = effectsData.dataDE
1296
+ end
1297
+ ____temp_10 = ____temp_9
1298
+ end
1299
+ local data = ____temp_10 or effectsData.data
1300
+ local modelPaths = data and data.modelPaths
1301
+ local attachmentPoints = data and data.attachmentPoints
1302
+ local parameters = data and data.parameters
1303
+ local effects = {}
1304
+ for i = 1, effectsData.effectCount do
1305
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1306
+ local effectParameters = parameters and parameters[i]
1307
+ if type(xOrWidget) == "number" then
1308
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1309
+ else
1310
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1311
+ if attachmentPoint == nil or attachmentPoint == "" then
1312
+ attachmentPoint = "origin"
1313
+ end
1314
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1315
+ end
1316
+ end
1317
+ targetChannelingEffectsByCaster[caster] = effects
1318
+ end
1319
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1320
+ createTargetChannelingEffects(caster, ability.typeId, target)
1321
+ end
1322
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1323
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1324
+ end
1102
1325
  local function handleAbilityStopChannelingEvent(caster)
1103
- local effects = casterChannelingEffectsByCaster[caster]
1104
- if effects ~= nil then
1105
- for i = 1, #effects do
1106
- effects[i]:destroy()
1326
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1327
+ if casterEffects ~= nil then
1328
+ for i = 1, #casterEffects do
1329
+ casterEffects[i]:destroy()
1107
1330
  end
1108
1331
  casterChannelingEffectsByCaster[caster] = nil
1109
1332
  end
1333
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1334
+ if targetEffects ~= nil then
1335
+ for i = 1, #targetEffects do
1336
+ targetEffects[i]:destroy()
1337
+ end
1338
+ targetChannelingEffectsByCaster[caster] = nil
1339
+ end
1110
1340
  end
1111
1341
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1112
1342
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1113
1343
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1114
1344
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1115
1345
  end
1346
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1347
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1348
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1349
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1350
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1351
+ end
1116
1352
  return ____exports