warscript 0.0.1-dev.c37d12c → 0.0.1-dev.c47d565

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 (498) hide show
  1. package/attributes.d.ts +18 -0
  2. package/attributes.lua +32 -0
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/dummy.lua +4 -2
  8. package/core/types/effect.d.ts +24 -6
  9. package/core/types/effect.lua +169 -107
  10. package/core/types/frame.d.ts +24 -3
  11. package/core/types/frame.lua +198 -42
  12. package/core/types/group.d.ts +0 -1
  13. package/core/types/handle.d.ts +2 -1
  14. package/core/types/handle.lua +14 -9
  15. package/core/types/image.d.ts +0 -1
  16. package/core/types/item.d.ts +1 -0
  17. package/core/types/item.lua +1 -0
  18. package/core/types/missile.d.ts +2 -2
  19. package/core/types/missile.lua +8 -2
  20. package/core/types/player.d.ts +18 -1
  21. package/core/types/player.lua +76 -26
  22. package/core/types/playerCamera.d.ts +2 -0
  23. package/core/types/playerCamera.lua +123 -5
  24. package/core/types/playerColor.lua +4 -3
  25. package/core/types/sound.d.ts +18 -25
  26. package/core/types/sound.lua +113 -33
  27. package/core/types/tileCell.d.ts +18 -3
  28. package/core/types/tileCell.lua +108 -0
  29. package/core/types/timer.d.ts +9 -8
  30. package/core/types/timer.lua +45 -23
  31. package/core/types/unit.d.ts +5 -0
  32. package/core/types/unit.lua +13 -0
  33. package/core/util.d.ts +3 -1
  34. package/core/util.lua +127 -4
  35. package/decl/index.d.ts +1 -0
  36. package/decl/native.d.ts +1718 -964
  37. package/destroyable.d.ts +1 -0
  38. package/destroyable.lua +9 -0
  39. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  40. package/engine/ability-type-extended-tooltip.lua +44 -0
  41. package/engine/ability.d.ts +1 -1
  42. package/engine/behavior.d.ts +24 -11
  43. package/engine/behavior.lua +233 -73
  44. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  45. package/engine/behaviour/ability/always-enabled.lua +31 -0
  46. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  47. package/engine/behaviour/ability/apply-buff.lua +36 -4
  48. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  49. package/engine/behaviour/ability/apply-unit-behavior.lua +37 -9
  50. package/engine/behaviour/ability/damage.d.ts +43 -11
  51. package/engine/behaviour/ability/damage.lua +89 -39
  52. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  53. package/engine/behaviour/ability/emulate-impact.lua +44 -0
  54. package/engine/behaviour/ability/heal.d.ts +33 -6
  55. package/engine/behaviour/ability/heal.lua +89 -10
  56. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  57. package/engine/behaviour/ability/instant-impact.lua +4 -15
  58. package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
  59. package/engine/behaviour/ability/on-command-impact.lua +26 -0
  60. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  61. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  62. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  63. package/engine/behaviour/ability/restore-mana.lua +29 -0
  64. package/engine/behaviour/ability.d.ts +37 -7
  65. package/engine/behaviour/ability.lua +208 -27
  66. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  67. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  68. package/engine/behaviour/unit.d.ts +49 -4
  69. package/engine/behaviour/unit.lua +293 -2
  70. package/engine/buff.d.ts +177 -59
  71. package/engine/buff.lua +795 -281
  72. package/engine/game-map.d.ts +7 -0
  73. package/engine/game-map.lua +32 -0
  74. package/engine/index.d.ts +2 -1
  75. package/engine/internal/ability.d.ts +31 -15
  76. package/engine/internal/ability.lua +177 -104
  77. package/engine/internal/item/ability.lua +162 -4
  78. package/engine/internal/item/fields.d.ts +12 -0
  79. package/engine/internal/item/fields.lua +33 -0
  80. package/engine/internal/item/owner-cache.d.ts +5 -0
  81. package/engine/internal/item/owner-cache.lua +4 -0
  82. package/engine/internal/item+owner.d.ts +2 -0
  83. package/engine/internal/item+owner.lua +37 -8
  84. package/engine/internal/item.d.ts +34 -18
  85. package/engine/internal/item.lua +308 -102
  86. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  87. package/engine/internal/mechanics/ability-duration.lua +3 -1
  88. package/engine/internal/mechanics/cast-ability.lua +89 -0
  89. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  90. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  91. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  92. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  93. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  94. package/engine/internal/misc/frame-coordinates.lua +21 -0
  95. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  96. package/engine/internal/misc/get-terrain-z.lua +11 -0
  97. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  98. package/engine/internal/misc/player-local-handle.lua +5 -0
  99. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  100. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  101. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  102. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  103. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  104. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  105. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  106. package/engine/internal/object-data/evasion-probability.lua +16 -0
  107. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  108. package/engine/internal/object-data/health-bonus.lua +16 -0
  109. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  110. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  111. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  112. package/engine/internal/object-data/mana-bonus.lua +16 -0
  113. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  114. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  115. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  116. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  117. package/engine/internal/unit/ability.d.ts +45 -1
  118. package/engine/internal/unit/ability.lua +128 -17
  119. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  120. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  121. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  122. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  123. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  124. package/engine/internal/unit/allowed-targets.lua +9 -1
  125. package/engine/internal/unit/appearance.d.ts +15 -0
  126. package/engine/internal/unit/appearance.lua +85 -0
  127. package/engine/internal/unit/attributes.d.ts +17 -0
  128. package/engine/internal/unit/attributes.lua +46 -0
  129. package/engine/internal/unit/bonus.d.ts +28 -8
  130. package/engine/internal/unit/bonus.lua +136 -9
  131. package/engine/internal/unit/buff.d.ts +2 -2
  132. package/engine/internal/unit/buff.lua +34 -19
  133. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  134. package/engine/internal/unit/detach-missiles.lua +30 -0
  135. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  136. package/engine/internal/unit/equipment-inventory.lua +233 -0
  137. package/engine/internal/unit/expiration-timer.lua +1 -1
  138. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  139. package/engine/internal/unit/extended-inventory.lua +99 -0
  140. package/engine/internal/unit/fly-height.d.ts +7 -0
  141. package/engine/internal/unit/fly-height.lua +20 -0
  142. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  143. package/engine/internal/unit/ignore-events-items.lua +14 -0
  144. package/engine/internal/unit/interrupts.d.ts +12 -0
  145. package/engine/internal/unit/interrupts.lua +28 -0
  146. package/engine/internal/unit/inventory.d.ts +28 -0
  147. package/engine/internal/unit/inventory.lua +87 -0
  148. package/engine/internal/unit/item-container.d.ts +25 -0
  149. package/engine/internal/unit/item-container.lua +11 -0
  150. package/engine/internal/unit/item-order-events.d.ts +17 -0
  151. package/engine/internal/unit/item-order-events.lua +67 -0
  152. package/engine/internal/unit/item-slot.d.ts +27 -0
  153. package/engine/internal/unit/item-slot.lua +92 -0
  154. package/engine/internal/unit/main-selected.d.ts +13 -0
  155. package/engine/internal/unit/main-selected.lua +36 -0
  156. package/engine/internal/unit/order.d.ts +20 -0
  157. package/engine/internal/unit/order.lua +136 -0
  158. package/engine/internal/unit/range-event.d.ts +12 -0
  159. package/engine/internal/unit/range-event.lua +90 -0
  160. package/engine/internal/unit/scale.d.ts +7 -0
  161. package/engine/internal/unit/scale.lua +20 -0
  162. package/engine/internal/unit+ability.d.ts +2 -1
  163. package/engine/internal/unit+ability.lua +75 -5
  164. package/engine/internal/unit+bonus.lua +3 -3
  165. package/engine/internal/unit+damage.d.ts +11 -11
  166. package/engine/internal/unit+damage.lua +43 -14
  167. package/engine/internal/unit+rally.lua +9 -31
  168. package/engine/internal/unit+spellSteal.lua +1 -2
  169. package/engine/internal/unit+transport.lua +4 -10
  170. package/engine/internal/unit-missile-data.lua +58 -32
  171. package/engine/internal/unit-missile-launch.lua +70 -13
  172. package/engine/internal/unit.d.ts +91 -38
  173. package/engine/internal/unit.lua +669 -351
  174. package/engine/internal/utility.lua +12 -0
  175. package/engine/lightning.d.ts +12 -5
  176. package/engine/lightning.lua +48 -14
  177. package/engine/local-client.d.ts +35 -2
  178. package/engine/local-client.lua +367 -15
  179. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  180. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  181. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  182. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  183. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -3
  184. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  185. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  186. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  187. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  188. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  189. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  190. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  191. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  192. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  193. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  194. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  195. package/engine/object-data/auxiliary/item-class.lua +2 -0
  196. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  197. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  198. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  199. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  200. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  201. package/engine/object-data/auxiliary/order-type.lua +2 -0
  202. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  203. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  204. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  205. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  206. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  207. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  208. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  209. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  210. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  211. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  212. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  213. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  214. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  215. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  216. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  217. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  218. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  219. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  220. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  221. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  222. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  223. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  224. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  225. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  226. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  227. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  228. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  229. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -1
  230. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  231. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  232. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  233. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  234. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  235. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  236. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  237. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  238. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  239. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  240. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  241. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  242. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  243. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  244. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  245. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  246. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  247. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  248. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  249. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  250. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  251. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  252. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  253. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  254. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  255. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  256. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  257. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  258. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  259. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  260. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  261. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  262. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  263. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  264. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  265. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  266. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  267. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  268. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  269. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  270. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  271. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  272. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  273. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  274. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  275. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  276. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  277. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  278. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  279. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  280. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  281. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  282. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  283. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  284. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  285. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  286. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  287. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  288. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  289. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  290. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  291. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  292. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  293. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  294. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  295. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  296. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  297. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  298. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  299. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  300. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  301. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  302. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  303. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  304. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  305. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  306. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  307. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  308. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  309. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  310. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  311. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  312. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  313. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  314. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  315. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  316. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  317. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  318. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  319. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  320. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  321. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  322. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  323. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  324. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  325. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  326. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  327. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  328. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  329. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  330. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  331. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  332. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  333. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  334. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  335. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  336. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  337. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  338. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  339. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  340. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  341. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  342. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  343. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  344. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  345. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  346. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  347. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  348. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  349. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  350. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  351. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  352. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  353. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  354. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  355. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  356. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  357. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  358. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  359. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  360. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  361. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  362. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  363. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  364. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  365. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  366. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  367. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  368. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  369. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  370. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  371. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  372. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  373. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  374. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  375. package/engine/object-data/entry/ability-type/web.lua +52 -0
  376. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  377. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  378. package/engine/object-data/entry/ability-type.d.ts +48 -21
  379. package/engine/object-data/entry/ability-type.lua +377 -44
  380. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  381. package/engine/object-data/entry/buff-type/applicable.lua +143 -202
  382. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  383. package/engine/object-data/entry/buff-type.d.ts +10 -13
  384. package/engine/object-data/entry/buff-type.lua +39 -29
  385. package/engine/object-data/entry/destructible-type.d.ts +32 -3
  386. package/engine/object-data/entry/destructible-type.lua +181 -0
  387. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  388. package/engine/object-data/entry/item-type.d.ts +32 -4
  389. package/engine/object-data/entry/item-type.lua +177 -2
  390. package/engine/object-data/entry/lightning-type.d.ts +6 -9
  391. package/engine/object-data/entry/lightning-type.lua +1 -1
  392. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  393. package/engine/object-data/entry/sound-preset.lua +140 -0
  394. package/engine/object-data/entry/unit-type.d.ts +121 -6
  395. package/engine/object-data/entry/unit-type.lua +959 -118
  396. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  397. package/engine/object-data/entry/upgrade.d.ts +2 -3
  398. package/engine/object-data/entry/upgrade.lua +4 -4
  399. package/engine/object-data/entry.d.ts +23 -17
  400. package/engine/object-data/entry.lua +68 -32
  401. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  402. package/engine/object-field/ability.d.ts +33 -8
  403. package/engine/object-field/ability.lua +63 -3
  404. package/engine/object-field/item.d.ts +22 -0
  405. package/engine/object-field/item.lua +118 -0
  406. package/engine/object-field/unit.d.ts +72 -2
  407. package/engine/object-field/unit.lua +268 -4
  408. package/engine/object-field.d.ts +30 -11
  409. package/engine/object-field.lua +386 -122
  410. package/engine/random.d.ts +11 -0
  411. package/engine/random.lua +30 -0
  412. package/engine/standard/entries/ability-type.d.ts +3102 -7
  413. package/engine/standard/entries/ability-type.lua +0 -6
  414. package/engine/standard/entries/buff-type.d.ts +48 -0
  415. package/engine/standard/entries/buff-type.lua +46 -0
  416. package/engine/standard/entries/item-type.d.ts +1299 -0
  417. package/engine/standard/entries/item-type.lua +2 -0
  418. package/engine/standard/entries/lightning-type.d.ts +42 -15
  419. package/engine/standard/entries/lightning-type.lua +0 -14
  420. package/engine/standard/entries/sound-preset.d.ts +10 -0
  421. package/engine/standard/entries/sound-preset.lua +10 -0
  422. package/engine/standard/entries/unit-type.d.ts +47 -1
  423. package/engine/standard/entries/unit-type.lua +47 -1
  424. package/engine/standard/fields/ability.d.ts +5 -3
  425. package/engine/standard/fields/ability.lua +5 -3
  426. package/engine/standard/fields/item.d.ts +4 -0
  427. package/engine/standard/fields/item.lua +6 -0
  428. package/engine/standard/fields/unit.d.ts +12 -0
  429. package/engine/standard/fields/unit.lua +20 -0
  430. package/engine/synchronization.d.ts +11 -0
  431. package/engine/synchronization.lua +77 -0
  432. package/engine/text-tag.d.ts +36 -2
  433. package/engine/text-tag.lua +250 -10
  434. package/engine/unit.d.ts +14 -0
  435. package/engine/unit.lua +23 -2
  436. package/event.d.ts +3 -4
  437. package/event.lua +9 -5
  438. package/global/vec2.lua +1 -0
  439. package/index.d.ts +1 -0
  440. package/index.lua +1 -0
  441. package/lualib_bundle.lua +147 -43
  442. package/math/vec2.d.ts +2 -9
  443. package/math.d.ts +2 -2
  444. package/math.lua +14 -0
  445. package/net/socket.d.ts +7 -1
  446. package/net/socket.lua +45 -4
  447. package/network.d.ts +1 -0
  448. package/network.lua +28 -3
  449. package/objutil/ability.d.ts +0 -1
  450. package/objutil/buff.d.ts +0 -1
  451. package/objutil/buff.lua +13 -12
  452. package/objutil/object.d.ts +0 -1
  453. package/objutil/object.lua +1 -1
  454. package/objutil/unit.d.ts +0 -1
  455. package/objutil/unit.lua +8 -0
  456. package/operation.d.ts +8 -1
  457. package/operation.lua +38 -18
  458. package/package.json +3 -24
  459. package/patch-lua.d.ts +0 -0
  460. package/patch-lua.lua +25 -0
  461. package/patch-lualib.lua +1 -1
  462. package/property.d.ts +55 -0
  463. package/property.lua +374 -0
  464. package/string.d.ts +30 -0
  465. package/string.lua +14 -0
  466. package/util/stream.d.ts +0 -1
  467. package/utility/arrays.d.ts +20 -6
  468. package/utility/arrays.lua +62 -3
  469. package/utility/bit-set.d.ts +0 -2
  470. package/utility/callback-array.d.ts +17 -0
  471. package/utility/callback-array.lua +61 -0
  472. package/utility/functions.d.ts +8 -0
  473. package/utility/functions.lua +13 -0
  474. package/utility/lazy.d.ts +2 -0
  475. package/utility/lazy.lua +14 -0
  476. package/utility/linked-map.d.ts +35 -0
  477. package/utility/linked-map.lua +107 -0
  478. package/utility/linked-set.d.ts +17 -4
  479. package/utility/linked-set.lua +70 -3
  480. package/utility/lua-maps.d.ts +16 -4
  481. package/utility/lua-maps.lua +53 -2
  482. package/utility/lua-sets.d.ts +3 -2
  483. package/utility/lua-sets.lua +7 -0
  484. package/utility/random.d.ts +102 -0
  485. package/utility/random.lua +273 -0
  486. package/utility/records.lua +20 -1
  487. package/utility/reflection.lua +11 -7
  488. package/utility/types.d.ts +6 -2
  489. package/utility/unordered-map.d.ts +27 -0
  490. package/utility/unordered-map.lua +99 -0
  491. package/core/mapbounds.d.ts +0 -8
  492. package/core/mapbounds.lua +0 -12
  493. package/core/types/order.d.ts +0 -25
  494. package/core/types/order.lua +0 -55
  495. /package/engine/internal/{object-data/armor-increase.d.ts → mechanics/cast-ability.d.ts} +0 -0
  496. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  497. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  498. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,11 +1,13 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
- local __TS__New = ____lualib.__TS__New
5
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
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
10
+ require("engine.internal.unit.ability")
9
11
  local ____timer = require("core.types.timer")
10
12
  local Timer = ____timer.Timer
11
13
  local ____effect = require("core.types.effect")
@@ -17,9 +19,11 @@ local array = ____arrays.array
17
19
  local map = ____arrays.map
18
20
  local mapIndexed = ____arrays.mapIndexed
19
21
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
22
+ local attachmentPointToNodeFQN = ____attachment_2Dpreset.attachmentPointToNodeFQN
20
23
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
21
24
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
22
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
25
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
26
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
23
27
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
24
28
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
25
29
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -30,14 +34,27 @@ local ____entry = require("engine.object-data.entry")
30
34
  local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLevelFieldValue
31
35
  local ObjectDataEntry = ____entry.ObjectDataEntry
32
36
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
33
- local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
37
+ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
34
38
  local ____upgrade = require("engine.object-data.entry.upgrade")
35
39
  local Upgrade = ____upgrade.Upgrade
40
+ local ____sound = require("core.types.sound")
41
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
42
+ local Sound3D = ____sound.Sound3D
43
+ local SoundSettings = ____sound.SoundSettings
44
+ local ____lua_2Dsets = require("utility.lua-sets")
45
+ local luaSetOf = ____lua_2Dsets.luaSetOf
46
+ local ____local_2Dclient = require("engine.local-client")
47
+ local LocalClient = ____local_2Dclient.LocalClient
36
48
  local castAnimationFQNByAbilityTypeId = {}
37
49
  local isButtonVisibleFalseAbilityTypes = {}
38
50
  local casterCastingEffectPresetsByAbilityTypeId = {}
39
51
  local casterChannelingEffectPresetsByAbilityTypeId = {}
40
52
  local targetCastingEffectPresetsByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
55
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
56
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
57
+ local targetEffectSoundPresetByAbilityTypeId = {}
41
58
  ____exports.AbilityType = __TS__Class()
42
59
  local AbilityType = ____exports.AbilityType
43
60
  AbilityType.name = "AbilityType"
@@ -52,10 +69,7 @@ end
52
69
  function AbilityType.getObjectData(self, map)
53
70
  return map.objects.ability
54
71
  end
55
- AbilityType.idGenerator = __TS__New(
56
- ObjectDataEntryIdGenerator,
57
- fourCC("A000")
58
- )
72
+ AbilityType.idGenerator = abilityTypeIdGenerator
59
73
  __TS__SetDescriptor(
60
74
  AbilityType.prototype,
61
75
  "channelingAnimation",
@@ -116,7 +130,7 @@ __TS__SetDescriptor(
116
130
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
117
131
  end,
118
132
  set = function(self, casterCastingEffectPresets)
119
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
133
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
120
134
  end
121
135
  },
122
136
  true
@@ -129,7 +143,7 @@ __TS__SetDescriptor(
129
143
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
130
144
  end,
131
145
  set = function(self, casterChannelingEffectPresets)
132
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
146
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
133
147
  end
134
148
  },
135
149
  true
@@ -160,6 +174,45 @@ __TS__SetDescriptor(
160
174
  },
161
175
  true
162
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
+ )
163
216
  __TS__SetDescriptor(
164
217
  AbilityType.prototype,
165
218
  "iconPath",
@@ -199,6 +252,19 @@ __TS__SetDescriptor(
199
252
  },
200
253
  true
201
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
+ )
202
268
  __TS__SetDescriptor(
203
269
  AbilityType.prototype,
204
270
  "isButtonVisible",
@@ -274,10 +340,10 @@ __TS__SetDescriptor(
274
340
  "lightningTypeIds",
275
341
  {
276
342
  get = function(self)
277
- return self:getObjectDataEntryIdsField("alig")
343
+ return self:getObjectDataEntryNumericIdsField("alig")
278
344
  end,
279
345
  set = function(self, lightningTypeIds)
280
- self:setObjectDataEntryIdsField("alig", lightningTypeIds)
346
+ self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
281
347
  end
282
348
  },
283
349
  true
@@ -321,6 +387,19 @@ __TS__SetDescriptor(
321
387
  },
322
388
  true
323
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
+ )
324
403
  __TS__SetDescriptor(
325
404
  AbilityType.prototype,
326
405
  "missileMovementArc",
@@ -349,13 +428,30 @@ __TS__SetDescriptor(
349
428
  )
350
429
  __TS__SetDescriptor(
351
430
  AbilityType.prototype,
352
- "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",
353
445
  {
354
446
  get = function(self)
355
- return self:getAttachmentPresetField("asat", "aspt")
447
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField("aspt"))
448
+ return {nodeName = nodeName, nodeQualifiers = nodeQualifiers}
356
449
  end,
357
- set = function(self, specialAttachmentPreset)
358
- self:setAttachmentPresetField("asat", "aspt", specialAttachmentPreset)
450
+ set = function(self, specialEffectAttachmentPoint)
451
+ self:setStringField(
452
+ "aspt",
453
+ attachmentPointToNodeFQN(specialEffectAttachmentPoint)
454
+ )
359
455
  end
360
456
  },
361
457
  true
@@ -368,7 +464,59 @@ __TS__SetDescriptor(
368
464
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
369
465
  end,
370
466
  set = function(self, targetCastingEffectPresets)
371
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
467
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
468
+ end
469
+ },
470
+ true
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)
372
520
  end
373
521
  },
374
522
  true
@@ -454,6 +602,33 @@ __TS__SetDescriptor(
454
602
  },
455
603
  true
456
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
+ )
457
632
  __TS__SetDescriptor(
458
633
  AbilityType.prototype,
459
634
  "turnOffButtonPositionX",
@@ -511,7 +686,7 @@ __TS__SetDescriptor(
511
686
  "techTreeDependencies",
512
687
  {
513
688
  get = function(self)
514
- local techTreeDependencyIds = self:getObjectDataEntryIdsField("areq")
689
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
515
690
  local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
516
691
  return mapIndexed(
517
692
  techTreeDependencyIds,
@@ -531,7 +706,7 @@ __TS__SetDescriptor(
531
706
  map(techTreeDependencies, extractTechTreeDependencyInputLevel),
532
707
  function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
533
708
  )
534
- self:setObjectDataEntryIdsField("areq", techTreeDependencyIds)
709
+ self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
535
710
  self:setNumbersField("arqa", techTreeDependencyInternalLevels)
536
711
  end
537
712
  },
@@ -721,26 +896,40 @@ __TS__SetDescriptor(
721
896
  )
722
897
  __TS__SetDescriptor(
723
898
  AbilityType.prototype,
724
- "soundPresetName",
899
+ "casterEffectSoundPresetId",
725
900
  {
726
901
  get = function(self)
727
- return self:getStringField("aefs")
902
+ local casterEffectSoundPresetId = self:getStringField("aefs")
903
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
728
904
  end,
729
- set = function(self, soundPresetName)
730
- self:setStringField("aefs", soundPresetName)
905
+ set = function(self, casterEffectSoundPresetId)
906
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
731
907
  end
732
908
  },
733
909
  true
734
910
  )
735
911
  __TS__SetDescriptor(
736
912
  AbilityType.prototype,
737
- "loopingSoundPresetName",
913
+ "casterEffectLoopingSoundPresetId",
738
914
  {
739
915
  get = function(self)
740
916
  return self:getStringField("aefl")
741
917
  end,
742
- set = function(self, loopingSoundPresetName)
743
- self:setStringField("aefl", loopingSoundPresetName)
918
+ set = function(self, casterEffectLoopingSoundPresetId)
919
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
920
+ end
921
+ },
922
+ true
923
+ )
924
+ __TS__SetDescriptor(
925
+ AbilityType.prototype,
926
+ "targetEffectSoundPresetId",
927
+ {
928
+ get = function(self)
929
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
930
+ end,
931
+ set = function(self, targetEffectSoundPresetId)
932
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
744
933
  end
745
934
  },
746
935
  true
@@ -799,10 +988,10 @@ __TS__SetDescriptor(
799
988
  "buffTypeIds",
800
989
  {
801
990
  get = function(self)
802
- return self:getObjectDataEntryIdsLevelField("abuf")
991
+ return self:getObjectDataEntryNumericIdsLevelField("abuf")
803
992
  end,
804
993
  set = function(self, buffTypeIds)
805
- self:setObjectDataEntryIdsLevelField("abuf", buffTypeIds)
994
+ self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
806
995
  end
807
996
  },
808
997
  true
@@ -851,10 +1040,10 @@ __TS__SetDescriptor(
851
1040
  "effectBuffTypeIds",
852
1041
  {
853
1042
  get = function(self)
854
- return self:getObjectDataEntryIdsLevelField("aeff")
1043
+ return self:getObjectDataEntryNumericIdsLevelField("aeff")
855
1044
  end,
856
1045
  set = function(self, effectBuffTypeIds)
857
- self:setObjectDataEntryIdsLevelField("aeff", effectBuffTypeIds)
1046
+ self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
858
1047
  end
859
1048
  },
860
1049
  true
@@ -962,13 +1151,38 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
962
1151
  4,
963
1152
  function(caster, ability)
964
1153
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
965
- Timer:run(function()
966
- caster:playAnimation(animationFQN)
967
- end)
1154
+ Timer:run(caster, "playAnimation", animationFQN)
968
1155
  end
969
1156
  end
970
1157
  )
971
1158
  end
1159
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
1160
+ if soundPresetId ~= nil then
1161
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
1162
+ 4,
1163
+ function(caster, ability, target)
1164
+ if __TS__InstanceOf(target, Unit) then
1165
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
1166
+ else
1167
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
1168
+ end
1169
+ end
1170
+ )
1171
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1172
+ 4,
1173
+ function(caster, ability, x, y)
1174
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1175
+ end
1176
+ )
1177
+ end
1178
+ end
1179
+ local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
1180
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1181
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1182
+ if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
1183
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1184
+ end
1185
+ end)
972
1186
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
973
1187
  return mapValues(
974
1188
  casterCastingEffectPresetsByAbilityTypeId,
@@ -981,10 +1195,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
981
1195
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
982
1196
  )
983
1197
  end)
1198
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1199
+ return mapValues(
1200
+ casterCastingEffectPresetsByAbilityTypeId,
1201
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1202
+ )
1203
+ end)
984
1204
  local casterCastingEffectsByCaster = {}
985
1205
  local function handleAbilityCastingStartEvent(caster, ability)
986
1206
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
987
1207
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1208
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
988
1209
  local effects = {}
989
1210
  if effectModelPaths ~= nil then
990
1211
  for i = 1, #effectModelPaths do
@@ -993,12 +1214,12 @@ local function handleAbilityCastingStartEvent(caster, ability)
993
1214
  if attachmentPoint == nil or attachmentPoint == "" then
994
1215
  attachmentPoint = "origin"
995
1216
  end
996
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1217
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
997
1218
  end
998
1219
  end
999
1220
  casterCastingEffectsByCaster[caster] = effects
1000
1221
  end
1001
- local function handleAbilityStopEvent(caster)
1222
+ local function handleAbilityStopCastingEvent(caster)
1002
1223
  local effects = casterCastingEffectsByCaster[caster]
1003
1224
  if effects ~= nil then
1004
1225
  for i = 1, #effects do
@@ -1009,8 +1230,8 @@ local function handleAbilityStopEvent(caster)
1009
1230
  end
1010
1231
  for abilityTypeId in pairs(casterCastingEffectModelPathsByAbilityTypeId) do
1011
1232
  Unit.abilityCastingStartEvent[abilityTypeId]:addListener(4, handleAbilityCastingStartEvent)
1012
- Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1013
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1233
+ Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1234
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1014
1235
  end
1015
1236
  local casterChannelingEffectModelPathsByAbilityTypeId = postcompile(function()
1016
1237
  return mapValues(
@@ -1024,10 +1245,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1024
1245
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1025
1246
  )
1026
1247
  end)
1248
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1249
+ return mapValues(
1250
+ casterChannelingEffectPresetsByAbilityTypeId,
1251
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1252
+ )
1253
+ end)
1027
1254
  local casterChannelingEffectsByCaster = {}
1028
1255
  local function handleAbilityChannelingStartEvent(caster, ability)
1029
1256
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1030
1257
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1258
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1031
1259
  local effects = {}
1032
1260
  if effectModelPaths ~= nil then
1033
1261
  for i = 1, #effectModelPaths do
@@ -1036,23 +1264,128 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1036
1264
  if attachmentPoint == nil or attachmentPoint == "" then
1037
1265
  attachmentPoint = "origin"
1038
1266
  end
1039
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1267
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1040
1268
  end
1041
1269
  end
1042
1270
  casterChannelingEffectsByCaster[caster] = effects
1043
1271
  end
1044
- local function handleAbilityStopEventV2(caster)
1045
- local effects = casterChannelingEffectsByCaster[caster]
1046
- if effects ~= nil then
1047
- for i = 1, #effects do
1048
- effects[i]:destroy()
1272
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1273
+ local function toData(presets)
1274
+ if presets == nil then
1275
+ return nil
1276
+ end
1277
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1278
+ local parameters = map(presets, "parameters")
1279
+ return {
1280
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1281
+ attachmentPoints = __TS__ArraySome(
1282
+ attachmentPoints,
1283
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1284
+ ) and attachmentPoints or nil,
1285
+ parameters = __TS__ArraySome(
1286
+ presets,
1287
+ function(____, preset) return preset.parameters ~= nil end
1288
+ ) and parameters or nil
1289
+ }
1290
+ end
1291
+ local abilityTypeIds = {}
1292
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1293
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1294
+ abilityTypeIds[abilityTypeId] = true
1295
+ end
1296
+ end
1297
+ local result = {}
1298
+ for abilityTypeId in pairs(abilityTypeIds) do
1299
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1300
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1301
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1302
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1303
+ local ____math_max_8 = math.max
1304
+ local ____opt_0 = presetsSD or presets
1305
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1306
+ local ____opt_2 = presetsHD or presets
1307
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1308
+ local ____opt_4 = presetsDE or presets
1309
+ result[abilityTypeId] = {
1310
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1311
+ data = toData(presets),
1312
+ dataSD = toData(presetsSD),
1313
+ dataHD = toData(presetsHD),
1314
+ dataDE = toData(presetsDE)
1315
+ }
1316
+ end
1317
+ return result
1318
+ end)
1319
+ local targetChannelingEffectsByCaster = {}
1320
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1321
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1322
+ if effectsData == nil then
1323
+ return
1324
+ end
1325
+ local graphicsMode = LocalClient.graphicsMode
1326
+ local ____temp_10
1327
+ if graphicsMode == 0 then
1328
+ ____temp_10 = effectsData.dataSD
1329
+ else
1330
+ local ____temp_9
1331
+ if graphicsMode == 1 then
1332
+ ____temp_9 = effectsData.dataHD
1333
+ else
1334
+ ____temp_9 = effectsData.dataDE
1335
+ end
1336
+ ____temp_10 = ____temp_9
1337
+ end
1338
+ local data = ____temp_10 or effectsData.data
1339
+ local modelPaths = data and data.modelPaths
1340
+ local attachmentPoints = data and data.attachmentPoints
1341
+ local parameters = data and data.parameters
1342
+ local effects = {}
1343
+ for i = 1, effectsData.effectCount do
1344
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1345
+ local effectParameters = parameters and parameters[i]
1346
+ if type(xOrWidget) == "number" then
1347
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1348
+ else
1349
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1350
+ if attachmentPoint == nil or attachmentPoint == "" then
1351
+ attachmentPoint = "origin"
1352
+ end
1353
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1354
+ end
1355
+ end
1356
+ targetChannelingEffectsByCaster[caster] = effects
1357
+ end
1358
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1359
+ createTargetChannelingEffects(caster, ability.typeId, target)
1360
+ end
1361
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1362
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1363
+ end
1364
+ local function handleAbilityStopChannelingEvent(caster)
1365
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1366
+ if casterEffects ~= nil then
1367
+ for i = 1, #casterEffects do
1368
+ casterEffects[i]:destroy()
1049
1369
  end
1050
1370
  casterChannelingEffectsByCaster[caster] = nil
1051
1371
  end
1372
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1373
+ if targetEffects ~= nil then
1374
+ for i = 1, #targetEffects do
1375
+ targetEffects[i]:destroy()
1376
+ end
1377
+ targetChannelingEffectsByCaster[caster] = nil
1378
+ end
1052
1379
  end
1053
1380
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1054
1381
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1055
- Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1056
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1382
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1383
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1384
+ end
1385
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1386
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1387
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1388
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1389
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1057
1390
  end
1058
1391
  return ____exports
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { BuffPolarity } from "../../auxiliary/buff-polarity";
4
3
  import { BuffResistanceType } from "../../auxiliary/buff-resistance-type";