warscript 0.0.1-dev.404878c

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 (493) hide show
  1. package/LICENSE +23 -0
  2. package/binaryreader.d.ts +20 -0
  3. package/binaryreader.lua +50 -0
  4. package/binarywriter.d.ts +21 -0
  5. package/binarywriter.lua +90 -0
  6. package/core/dummy.d.ts +22 -0
  7. package/core/dummy.lua +133 -0
  8. package/core/game.d.ts +3 -0
  9. package/core/game.lua +24 -0
  10. package/core/mapbounds.d.ts +8 -0
  11. package/core/mapbounds.lua +12 -0
  12. package/core/thread.d.ts +8 -0
  13. package/core/thread.lua +40 -0
  14. package/core/types/ability.d.ts +4 -0
  15. package/core/types/ability.lua +10 -0
  16. package/core/types/async.d.ts +3 -0
  17. package/core/types/async.lua +2 -0
  18. package/core/types/camera.d.ts +4 -0
  19. package/core/types/camera.lua +21 -0
  20. package/core/types/cameraField.d.ts +15 -0
  21. package/core/types/cameraField.lua +38 -0
  22. package/core/types/color.d.ts +16 -0
  23. package/core/types/color.lua +93 -0
  24. package/core/types/destructable.d.ts +31 -0
  25. package/core/types/destructable.lua +245 -0
  26. package/core/types/effect.d.ts +31 -0
  27. package/core/types/effect.lua +209 -0
  28. package/core/types/frame.d.ts +140 -0
  29. package/core/types/frame.lua +882 -0
  30. package/core/types/game.d.ts +8 -0
  31. package/core/types/game.lua +41 -0
  32. package/core/types/group.d.ts +22 -0
  33. package/core/types/group.lua +94 -0
  34. package/core/types/handle.d.ts +48 -0
  35. package/core/types/handle.lua +169 -0
  36. package/core/types/image.d.ts +30 -0
  37. package/core/types/image.lua +121 -0
  38. package/core/types/internal/ability+cooldownRemaining.d.ts +1 -0
  39. package/core/types/internal/ability+cooldownRemaining.lua +0 -0
  40. package/core/types/item.d.ts +4 -0
  41. package/core/types/item.lua +6 -0
  42. package/core/types/missile.d.ts +22 -0
  43. package/core/types/missile.lua +233 -0
  44. package/core/types/order.d.ts +25 -0
  45. package/core/types/order.lua +55 -0
  46. package/core/types/player.d.ts +71 -0
  47. package/core/types/player.lua +448 -0
  48. package/core/types/playerCamera.d.ts +32 -0
  49. package/core/types/playerCamera.lua +162 -0
  50. package/core/types/playerColor.d.ts +40 -0
  51. package/core/types/playerColor.lua +203 -0
  52. package/core/types/rect.d.ts +39 -0
  53. package/core/types/rect.lua +152 -0
  54. package/core/types/region.d.ts +14 -0
  55. package/core/types/region.lua +84 -0
  56. package/core/types/sound.d.ts +69 -0
  57. package/core/types/sound.lua +247 -0
  58. package/core/types/tileCell.d.ts +13 -0
  59. package/core/types/tileCell.lua +100 -0
  60. package/core/types/timer.d.ts +36 -0
  61. package/core/types/timer.lua +230 -0
  62. package/core/types/timerDialog.d.ts +19 -0
  63. package/core/types/timerDialog.lua +95 -0
  64. package/core/types/unit.d.ts +10 -0
  65. package/core/types/unit.lua +24 -0
  66. package/core/types/widget.d.ts +5 -0
  67. package/core/types/widget.lua +2 -0
  68. package/core/util.d.ts +62 -0
  69. package/core/util.lua +464 -0
  70. package/core/vecmath/common.d.ts +18 -0
  71. package/core/vecmath/common.lua +29 -0
  72. package/core/vecmath/mat2.d.ts +73 -0
  73. package/core/vecmath/mat2.lua +261 -0
  74. package/core/vecmath/vec3.d.ts +47 -0
  75. package/core/vecmath/vec3.lua +350 -0
  76. package/core/vecmath/vec4.d.ts +54 -0
  77. package/core/vecmath/vec4.lua +400 -0
  78. package/crypto/ecc.d.ts +6 -0
  79. package/crypto/ecc.lua +1734 -0
  80. package/decl/index.d.ts +116 -0
  81. package/decl/native.d.ts +8198 -0
  82. package/destroyable.d.ts +20 -0
  83. package/destroyable.lua +31 -0
  84. package/engine/ability.d.ts +5 -0
  85. package/engine/ability.lua +7 -0
  86. package/engine/behavior.d.ts +28 -0
  87. package/engine/behavior.lua +181 -0
  88. package/engine/behaviour/ability/apply-buff.d.ts +38 -0
  89. package/engine/behaviour/ability/apply-buff.lua +126 -0
  90. package/engine/behaviour/ability/apply-unit-behavior.d.ts +12 -0
  91. package/engine/behaviour/ability/apply-unit-behavior.lua +36 -0
  92. package/engine/behaviour/ability/damage.d.ts +25 -0
  93. package/engine/behaviour/ability/damage.lua +75 -0
  94. package/engine/behaviour/ability/heal.d.ts +16 -0
  95. package/engine/behaviour/ability/heal.lua +35 -0
  96. package/engine/behaviour/ability/instant-impact.d.ts +6 -0
  97. package/engine/behaviour/ability/instant-impact.lua +25 -0
  98. package/engine/behaviour/ability.d.ts +40 -0
  99. package/engine/behaviour/ability.lua +175 -0
  100. package/engine/behaviour/unit/stun-immunity.d.ts +19 -0
  101. package/engine/behaviour/unit/stun-immunity.lua +67 -0
  102. package/engine/behaviour/unit.d.ts +20 -0
  103. package/engine/behaviour/unit.lua +75 -0
  104. package/engine/buff.d.ts +221 -0
  105. package/engine/buff.lua +1093 -0
  106. package/engine/constants.d.ts +7 -0
  107. package/engine/constants.lua +8 -0
  108. package/engine/index.d.ts +5 -0
  109. package/engine/index.lua +2 -0
  110. package/engine/internal/ability.d.ts +91 -0
  111. package/engine/internal/ability.lua +531 -0
  112. package/engine/internal/item/ability.d.ts +2 -0
  113. package/engine/internal/item/ability.lua +48 -0
  114. package/engine/internal/item+owner.d.ts +7 -0
  115. package/engine/internal/item+owner.lua +22 -0
  116. package/engine/internal/item.d.ts +86 -0
  117. package/engine/internal/item.lua +580 -0
  118. package/engine/internal/mechanics/ability-duration.d.ts +4 -0
  119. package/engine/internal/mechanics/ability-duration.lua +11 -0
  120. package/engine/internal/mechanics/area-damage.d.ts +2 -0
  121. package/engine/internal/mechanics/area-damage.lua +33 -0
  122. package/engine/internal/misc/dummy-units.d.ts +2 -0
  123. package/engine/internal/misc/dummy-units.lua +14 -0
  124. package/engine/internal/object-data/armor-increase.d.ts +2 -0
  125. package/engine/internal/object-data/armor-increase.lua +19 -0
  126. package/engine/internal/object-data/attribute-bonus.d.ts +2 -0
  127. package/engine/internal/object-data/attribute-bonus.lua +15 -0
  128. package/engine/internal/object-data/auto-attack-damage-increase.d.ts +2 -0
  129. package/engine/internal/object-data/auto-attack-damage-increase.lua +17 -0
  130. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +2 -0
  131. package/engine/internal/object-data/auto-attack-speed-increase.lua +14 -0
  132. package/engine/internal/object-data/dummy-inventory.d.ts +2 -0
  133. package/engine/internal/object-data/dummy-inventory.lua +16 -0
  134. package/engine/internal/object-data/dummy-item.d.ts +2 -0
  135. package/engine/internal/object-data/dummy-item.lua +10 -0
  136. package/engine/internal/object-data/ghost-visible.d.ts +2 -0
  137. package/engine/internal/object-data/ghost-visible.lua +15 -0
  138. package/engine/internal/object-data/invulnerable.d.ts +2 -0
  139. package/engine/internal/object-data/invulnerable.lua +11 -0
  140. package/engine/internal/object-data/movement-speed-increase-factor.d.ts +2 -0
  141. package/engine/internal/object-data/movement-speed-increase-factor.lua +18 -0
  142. package/engine/internal/unit/ability.d.ts +143 -0
  143. package/engine/internal/unit/ability.lua +369 -0
  144. package/engine/internal/unit/allowed-targets.d.ts +17 -0
  145. package/engine/internal/unit/allowed-targets.lua +19 -0
  146. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.d.ts +2 -0
  147. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.lua +21 -0
  148. package/engine/internal/unit/bonus.d.ts +41 -0
  149. package/engine/internal/unit/bonus.lua +188 -0
  150. package/engine/internal/unit/buff.d.ts +38 -0
  151. package/engine/internal/unit/buff.lua +81 -0
  152. package/engine/internal/unit/expiration-timer.d.ts +22 -0
  153. package/engine/internal/unit/expiration-timer.lua +44 -0
  154. package/engine/internal/unit/ghost-counter.d.ts +12 -0
  155. package/engine/internal/unit/ghost-counter.lua +26 -0
  156. package/engine/internal/unit/invulnerability-counter.d.ts +12 -0
  157. package/engine/internal/unit/invulnerability-counter.lua +26 -0
  158. package/engine/internal/unit/missile.d.ts +42 -0
  159. package/engine/internal/unit/missile.lua +70 -0
  160. package/engine/internal/unit/movement-speed.d.ts +18 -0
  161. package/engine/internal/unit/movement-speed.lua +42 -0
  162. package/engine/internal/unit/summon-event.d.ts +12 -0
  163. package/engine/internal/unit/summon-event.lua +50 -0
  164. package/engine/internal/unit+ability.d.ts +9 -0
  165. package/engine/internal/unit+ability.lua +59 -0
  166. package/engine/internal/unit+bonus.d.ts +8 -0
  167. package/engine/internal/unit+bonus.lua +40 -0
  168. package/engine/internal/unit+damage.d.ts +69 -0
  169. package/engine/internal/unit+damage.lua +123 -0
  170. package/engine/internal/unit+rally.d.ts +10 -0
  171. package/engine/internal/unit+rally.lua +159 -0
  172. package/engine/internal/unit+spellSteal.d.ts +7 -0
  173. package/engine/internal/unit+spellSteal.lua +64 -0
  174. package/engine/internal/unit+transport.d.ts +12 -0
  175. package/engine/internal/unit+transport.lua +102 -0
  176. package/engine/internal/unit-missile-data.d.ts +2 -0
  177. package/engine/internal/unit-missile-data.lua +107 -0
  178. package/engine/internal/unit-missile-launch.d.ts +7 -0
  179. package/engine/internal/unit-missile-launch.lua +32 -0
  180. package/engine/internal/unit.d.ts +312 -0
  181. package/engine/internal/unit.lua +2430 -0
  182. package/engine/internal/utility.d.ts +2 -0
  183. package/engine/internal/utility.lua +13 -0
  184. package/engine/lightning.d.ts +51 -0
  185. package/engine/lightning.lua +303 -0
  186. package/engine/local-client.d.ts +16 -0
  187. package/engine/local-client.lua +86 -0
  188. package/engine/object-data/auxiliary/animation-name.d.ts +14 -0
  189. package/engine/object-data/auxiliary/animation-name.lua +2 -0
  190. package/engine/object-data/auxiliary/animation-qualifier.d.ts +53 -0
  191. package/engine/object-data/auxiliary/animation-qualifier.lua +2 -0
  192. package/engine/object-data/auxiliary/armor-sound-type.d.ts +8 -0
  193. package/engine/object-data/auxiliary/armor-sound-type.lua +2 -0
  194. package/engine/object-data/auxiliary/attachment-preset.d.ts +15 -0
  195. package/engine/object-data/auxiliary/attachment-preset.lua +29 -0
  196. package/engine/object-data/auxiliary/attack-type.d.ts +11 -0
  197. package/engine/object-data/auxiliary/attack-type.lua +2 -0
  198. package/engine/object-data/auxiliary/buff-polarity.d.ts +6 -0
  199. package/engine/object-data/auxiliary/buff-polarity.lua +2 -0
  200. package/engine/object-data/auxiliary/buff-resistance-type.d.ts +6 -0
  201. package/engine/object-data/auxiliary/buff-resistance-type.lua +2 -0
  202. package/engine/object-data/auxiliary/combat-classification.d.ts +46 -0
  203. package/engine/object-data/auxiliary/combat-classification.lua +206 -0
  204. package/engine/object-data/auxiliary/detection-type.d.ts +7 -0
  205. package/engine/object-data/auxiliary/detection-type.lua +2 -0
  206. package/engine/object-data/auxiliary/model-node-name.d.ts +12 -0
  207. package/engine/object-data/auxiliary/model-node-name.lua +2 -0
  208. package/engine/object-data/auxiliary/model-node-qualifier.d.ts +21 -0
  209. package/engine/object-data/auxiliary/model-node-qualifier.lua +2 -0
  210. package/engine/object-data/auxiliary/movement-type.d.ts +10 -0
  211. package/engine/object-data/auxiliary/movement-type.lua +2 -0
  212. package/engine/object-data/auxiliary/race.d.ts +14 -0
  213. package/engine/object-data/auxiliary/race.lua +2 -0
  214. package/engine/object-data/auxiliary/sound-preset-name.d.ts +8 -0
  215. package/engine/object-data/auxiliary/sound-preset-name.lua +2 -0
  216. package/engine/object-data/auxiliary/sound-set-name.d.ts +35 -0
  217. package/engine/object-data/auxiliary/sound-set-name.lua +2 -0
  218. package/engine/object-data/auxiliary/targeting-type.d.ts +8 -0
  219. package/engine/object-data/auxiliary/targeting-type.lua +2 -0
  220. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +16 -0
  221. package/engine/object-data/auxiliary/tech-tree-dependency.lua +8 -0
  222. package/engine/object-data/auxiliary/unit-classification.d.ts +19 -0
  223. package/engine/object-data/auxiliary/unit-classification.lua +50 -0
  224. package/engine/object-data/auxiliary/weapon-sound-type.d.ts +17 -0
  225. package/engine/object-data/auxiliary/weapon-sound-type.lua +2 -0
  226. package/engine/object-data/entry/ability-type/armor-increase.d.ts +8 -0
  227. package/engine/object-data/entry/ability-type/armor-increase.lua +26 -0
  228. package/engine/object-data/entry/ability-type/attribute-increase.d.ts +12 -0
  229. package/engine/object-data/entry/ability-type/attribute-increase.lua +52 -0
  230. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.lua +26 -0
  232. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.lua +52 -0
  234. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.d.ts +8 -0
  235. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.lua +26 -0
  236. package/engine/object-data/entry/ability-type/bash.d.ts +16 -0
  237. package/engine/object-data/entry/ability-type/bash.lua +78 -0
  238. package/engine/object-data/entry/ability-type/berserk.d.ts +10 -0
  239. package/engine/object-data/entry/ability-type/berserk.lua +39 -0
  240. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +21 -0
  241. package/engine/object-data/entry/ability-type/blank-configurable.lua +249 -0
  242. package/engine/object-data/entry/ability-type/blank-passive.d.ts +7 -0
  243. package/engine/object-data/entry/ability-type/blank-passive.lua +28 -0
  244. package/engine/object-data/entry/ability-type/blizzard.d.ts +16 -0
  245. package/engine/object-data/entry/ability-type/blizzard.lua +78 -0
  246. package/engine/object-data/entry/ability-type/blood-lust.d.ts +12 -0
  247. package/engine/object-data/entry/ability-type/blood-lust.lua +52 -0
  248. package/engine/object-data/entry/ability-type/chain-lightning.d.ts +12 -0
  249. package/engine/object-data/entry/ability-type/chain-lightning.lua +52 -0
  250. package/engine/object-data/entry/ability-type/channel.d.ts +48 -0
  251. package/engine/object-data/entry/ability-type/channel.lua +140 -0
  252. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.d.ts +14 -0
  253. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.lua +65 -0
  254. package/engine/object-data/entry/ability-type/cleaving-attack.d.ts +8 -0
  255. package/engine/object-data/entry/ability-type/cleaving-attack.lua +26 -0
  256. package/engine/object-data/entry/ability-type/cluster-rockets.d.ts +18 -0
  257. package/engine/object-data/entry/ability-type/cluster-rockets.lua +91 -0
  258. package/engine/object-data/entry/ability-type/cripple.d.ts +12 -0
  259. package/engine/object-data/entry/ability-type/cripple.lua +52 -0
  260. package/engine/object-data/entry/ability-type/critical-strike.d.ts +18 -0
  261. package/engine/object-data/entry/ability-type/critical-strike.lua +91 -0
  262. package/engine/object-data/entry/ability-type/curse.d.ts +8 -0
  263. package/engine/object-data/entry/ability-type/curse.lua +26 -0
  264. package/engine/object-data/entry/ability-type/dark-summoning.d.ts +10 -0
  265. package/engine/object-data/entry/ability-type/dark-summoning.lua +39 -0
  266. package/engine/object-data/entry/ability-type/death-coil.d.ts +8 -0
  267. package/engine/object-data/entry/ability-type/death-coil.lua +26 -0
  268. package/engine/object-data/entry/ability-type/disease-cloud.d.ts +15 -0
  269. package/engine/object-data/entry/ability-type/disease-cloud.lua +65 -0
  270. package/engine/object-data/entry/ability-type/divine-shield.d.ts +5 -0
  271. package/engine/object-data/entry/ability-type/divine-shield.lua +12 -0
  272. package/engine/object-data/entry/ability-type/endurance-aura.d.ts +10 -0
  273. package/engine/object-data/entry/ability-type/endurance-aura.lua +39 -0
  274. package/engine/object-data/entry/ability-type/engineering-upgrade.d.ts +13 -0
  275. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +88 -0
  276. package/engine/object-data/entry/ability-type/evasion.d.ts +8 -0
  277. package/engine/object-data/entry/ability-type/evasion.lua +26 -0
  278. package/engine/object-data/entry/ability-type/faerie-fire.d.ts +10 -0
  279. package/engine/object-data/entry/ability-type/faerie-fire.lua +39 -0
  280. package/engine/object-data/entry/ability-type/far-sight.d.ts +9 -0
  281. package/engine/object-data/entry/ability-type/far-sight.lua +26 -0
  282. package/engine/object-data/entry/ability-type/feral-spirit.d.ts +11 -0
  283. package/engine/object-data/entry/ability-type/feral-spirit.lua +39 -0
  284. package/engine/object-data/entry/ability-type/frenzy.d.ts +12 -0
  285. package/engine/object-data/entry/ability-type/frenzy.lua +52 -0
  286. package/engine/object-data/entry/ability-type/frost-nova.d.ts +12 -0
  287. package/engine/object-data/entry/ability-type/frost-nova.lua +52 -0
  288. package/engine/object-data/entry/ability-type/ghost-visible.d.ts +10 -0
  289. package/engine/object-data/entry/ability-type/ghost-visible.lua +39 -0
  290. package/engine/object-data/entry/ability-type/gold-mine.d.ts +12 -0
  291. package/engine/object-data/entry/ability-type/gold-mine.lua +52 -0
  292. package/engine/object-data/entry/ability-type/heal.d.ts +8 -0
  293. package/engine/object-data/entry/ability-type/heal.lua +26 -0
  294. package/engine/object-data/entry/ability-type/healing-salve.d.ts +22 -0
  295. package/engine/object-data/entry/ability-type/healing-salve.lua +78 -0
  296. package/engine/object-data/entry/ability-type/healing-spray.d.ts +18 -0
  297. package/engine/object-data/entry/ability-type/healing-spray.lua +91 -0
  298. package/engine/object-data/entry/ability-type/healing-wave.d.ts +12 -0
  299. package/engine/object-data/entry/ability-type/healing-wave.lua +52 -0
  300. package/engine/object-data/entry/ability-type/holy-light.d.ts +8 -0
  301. package/engine/object-data/entry/ability-type/holy-light.lua +26 -0
  302. package/engine/object-data/entry/ability-type/incinerate.d.ts +18 -0
  303. package/engine/object-data/entry/ability-type/incinerate.lua +91 -0
  304. package/engine/object-data/entry/ability-type/inner-fire.d.ts +14 -0
  305. package/engine/object-data/entry/ability-type/inner-fire.lua +65 -0
  306. package/engine/object-data/entry/ability-type/inventory.d.ts +16 -0
  307. package/engine/object-data/entry/ability-type/inventory.lua +78 -0
  308. package/engine/object-data/entry/ability-type/invulnerable.d.ts +5 -0
  309. package/engine/object-data/entry/ability-type/invulnerable.lua +12 -0
  310. package/engine/object-data/entry/ability-type/lightning-shield.d.ts +8 -0
  311. package/engine/object-data/entry/ability-type/lightning-shield.lua +26 -0
  312. package/engine/object-data/entry/ability-type/movement-speed-increase.d.ts +8 -0
  313. package/engine/object-data/entry/ability-type/movement-speed-increase.lua +26 -0
  314. package/engine/object-data/entry/ability-type/permanent-immolation.d.ts +8 -0
  315. package/engine/object-data/entry/ability-type/permanent-immolation.lua +26 -0
  316. package/engine/object-data/entry/ability-type/phoenix-morph.d.ts +25 -0
  317. package/engine/object-data/entry/ability-type/phoenix-morph.lua +130 -0
  318. package/engine/object-data/entry/ability-type/recall.d.ts +10 -0
  319. package/engine/object-data/entry/ability-type/recall.lua +39 -0
  320. package/engine/object-data/entry/ability-type/rejuvenation.d.ts +20 -0
  321. package/engine/object-data/entry/ability-type/rejuvenation.lua +65 -0
  322. package/engine/object-data/entry/ability-type/searing-arrows.d.ts +8 -0
  323. package/engine/object-data/entry/ability-type/searing-arrows.lua +26 -0
  324. package/engine/object-data/entry/ability-type/shock-wave.d.ts +10 -0
  325. package/engine/object-data/entry/ability-type/shock-wave.lua +39 -0
  326. package/engine/object-data/entry/ability-type/slow-poison.d.ts +12 -0
  327. package/engine/object-data/entry/ability-type/slow-poison.lua +52 -0
  328. package/engine/object-data/entry/ability-type/slow.d.ts +12 -0
  329. package/engine/object-data/entry/ability-type/slow.lua +52 -0
  330. package/engine/object-data/entry/ability-type/spell-damage-reduction.d.ts +10 -0
  331. package/engine/object-data/entry/ability-type/spell-damage-reduction.lua +39 -0
  332. package/engine/object-data/entry/ability-type/spiked-carapace.d.ts +12 -0
  333. package/engine/object-data/entry/ability-type/spiked-carapace.lua +52 -0
  334. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +14 -0
  335. package/engine/object-data/entry/ability-type/spirit-touch.lua +65 -0
  336. package/engine/object-data/entry/ability-type/storm-bolt.d.ts +8 -0
  337. package/engine/object-data/entry/ability-type/storm-bolt.lua +26 -0
  338. package/engine/object-data/entry/ability-type/summon-quilbeast.d.ts +11 -0
  339. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +39 -0
  340. package/engine/object-data/entry/ability-type/summon-water-elemental.d.ts +11 -0
  341. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +39 -0
  342. package/engine/object-data/entry/ability-type.d.ts +148 -0
  343. package/engine/object-data/entry/ability-type.lua +1058 -0
  344. package/engine/object-data/entry/buff-type/applicable.d.ts +16 -0
  345. package/engine/object-data/entry/buff-type/applicable.lua +377 -0
  346. package/engine/object-data/entry/buff-type/blank.d.ts +8 -0
  347. package/engine/object-data/entry/buff-type/blank.lua +17 -0
  348. package/engine/object-data/entry/buff-type.d.ts +64 -0
  349. package/engine/object-data/entry/buff-type.lua +316 -0
  350. package/engine/object-data/entry/destructible-type.d.ts +21 -0
  351. package/engine/object-data/entry/destructible-type.lua +83 -0
  352. package/engine/object-data/entry/item-type/blank.d.ts +8 -0
  353. package/engine/object-data/entry/item-type/blank.lua +21 -0
  354. package/engine/object-data/entry/item-type.d.ts +49 -0
  355. package/engine/object-data/entry/item-type.lua +259 -0
  356. package/engine/object-data/entry/lightning-type.d.ts +37 -0
  357. package/engine/object-data/entry/lightning-type.lua +191 -0
  358. package/engine/object-data/entry/unit-type/blank.d.ts +6 -0
  359. package/engine/object-data/entry/unit-type/blank.lua +13 -0
  360. package/engine/object-data/entry/unit-type.d.ts +218 -0
  361. package/engine/object-data/entry/unit-type.lua +1306 -0
  362. package/engine/object-data/entry/upgrade/blank.d.ts +8 -0
  363. package/engine/object-data/entry/upgrade/blank.lua +22 -0
  364. package/engine/object-data/entry/upgrade.d.ts +59 -0
  365. package/engine/object-data/entry/upgrade.lua +238 -0
  366. package/engine/object-data/entry.d.ts +80 -0
  367. package/engine/object-data/entry.lua +634 -0
  368. package/engine/object-data/utility/object-data-entry-id-generator.d.ts +6 -0
  369. package/engine/object-data/utility/object-data-entry-id-generator.lua +63 -0
  370. package/engine/object-data/utility/order-type-string-id-factory.d.ts +9 -0
  371. package/engine/object-data/utility/order-type-string-id-factory.lua +368 -0
  372. package/engine/object-field/ability.d.ts +115 -0
  373. package/engine/object-field/ability.lua +471 -0
  374. package/engine/object-field/unit.d.ts +15 -0
  375. package/engine/object-field/unit.lua +49 -0
  376. package/engine/object-field.d.ts +84 -0
  377. package/engine/object-field.lua +444 -0
  378. package/engine/random.d.ts +10 -0
  379. package/engine/random.lua +9 -0
  380. package/engine/standard/entries/ability-type.d.ts +8 -0
  381. package/engine/standard/entries/ability-type.lua +8 -0
  382. package/engine/standard/entries/lightning-type.d.ts +16 -0
  383. package/engine/standard/entries/lightning-type.lua +16 -0
  384. package/engine/standard/entries/unit-type.d.ts +63 -0
  385. package/engine/standard/entries/unit-type.lua +63 -0
  386. package/engine/standard/entries/upgrade.d.ts +92 -0
  387. package/engine/standard/entries/upgrade.lua +92 -0
  388. package/engine/standard/fields/ability.d.ts +737 -0
  389. package/engine/standard/fields/ability.lua +749 -0
  390. package/engine/standard/pathing-textures.d.ts +6 -0
  391. package/engine/standard/pathing-textures.lua +7 -0
  392. package/engine/text-tag.d.ts +25 -0
  393. package/engine/text-tag.lua +109 -0
  394. package/engine/unit.d.ts +20 -0
  395. package/engine/unit.lua +31 -0
  396. package/event.d.ts +53 -0
  397. package/event.lua +269 -0
  398. package/exception.d.ts +17 -0
  399. package/exception.lua +53 -0
  400. package/file.d.ts +4 -0
  401. package/file.lua +42 -0
  402. package/global/math.d.ts +21 -0
  403. package/global/math.lua +72 -0
  404. package/global/vec2.d.ts +66 -0
  405. package/global/vec2.lua +159 -0
  406. package/index.d.ts +8 -0
  407. package/index.lua +9 -0
  408. package/lualib_bundle.lua +2629 -0
  409. package/math/vec2.d.ts +18 -0
  410. package/math/vec2.lua +42 -0
  411. package/math.d.ts +39 -0
  412. package/math.lua +91 -0
  413. package/net/signal.d.ts +11 -0
  414. package/net/signal.lua +56 -0
  415. package/net/socket.d.ts +9 -0
  416. package/net/socket.lua +26 -0
  417. package/network.d.ts +31 -0
  418. package/network.lua +194 -0
  419. package/objutil/ability.d.ts +710 -0
  420. package/objutil/ability.lua +3781 -0
  421. package/objutil/buff.d.ts +110 -0
  422. package/objutil/buff.lua +769 -0
  423. package/objutil/dummy.d.ts +2 -0
  424. package/objutil/dummy.lua +49 -0
  425. package/objutil/idgen.d.ts +9 -0
  426. package/objutil/idgen.lua +92 -0
  427. package/objutil/item.d.ts +38 -0
  428. package/objutil/item.lua +254 -0
  429. package/objutil/object.d.ts +43 -0
  430. package/objutil/object.lua +213 -0
  431. package/objutil/unit.d.ts +134 -0
  432. package/objutil/unit.lua +913 -0
  433. package/objutil/upgrade.d.ts +22 -0
  434. package/objutil/upgrade.lua +127 -0
  435. package/operation.d.ts +35 -0
  436. package/operation.lua +179 -0
  437. package/package.json +47 -0
  438. package/patch-lualib.d.ts +2 -0
  439. package/patch-lualib.lua +67 -0
  440. package/patch-natives.d.ts +11 -0
  441. package/patch-natives.lua +14 -0
  442. package/string.d.ts +106 -0
  443. package/string.lua +34 -0
  444. package/time/dayOfWeek.d.ts +97 -0
  445. package/time/dayOfWeek.lua +53 -0
  446. package/time/localDate.d.ts +145 -0
  447. package/time/localDate.lua +236 -0
  448. package/time/localDateTime.d.ts +133 -0
  449. package/time/localDateTime.lua +154 -0
  450. package/time/localTime.d.ts +87 -0
  451. package/time/localTime.lua +91 -0
  452. package/time/month.d.ts +146 -0
  453. package/time/month.lua +129 -0
  454. package/time/year.d.ts +117 -0
  455. package/time/year.lua +81 -0
  456. package/types.d.ts +13 -0
  457. package/types.lua +0 -0
  458. package/util/objectPool.d.ts +6 -0
  459. package/util/objectPool.lua +28 -0
  460. package/util/stream.d.ts +29 -0
  461. package/util/stream.lua +453 -0
  462. package/util/stringBuilder.d.ts +8 -0
  463. package/util/stringBuilder.lua +25 -0
  464. package/utility/arrays.d.ts +57 -0
  465. package/utility/arrays.lua +369 -0
  466. package/utility/base64.d.ts +23 -0
  467. package/utility/base64.lua +177 -0
  468. package/utility/bit-set.d.ts +18 -0
  469. package/utility/bit-set.lua +12 -0
  470. package/utility/functions.d.ts +5 -0
  471. package/utility/functions.lua +90 -0
  472. package/utility/json.d.ts +2 -0
  473. package/utility/json.lua +400 -0
  474. package/utility/linked-set.d.ts +49 -0
  475. package/utility/linked-set.lua +181 -0
  476. package/utility/lua-maps.d.ts +6 -0
  477. package/utility/lua-maps.lua +25 -0
  478. package/utility/lua-sets.d.ts +6 -0
  479. package/utility/lua-sets.lua +37 -0
  480. package/utility/lzw.d.ts +2 -0
  481. package/utility/lzw.lua +161 -0
  482. package/utility/observable-array.d.ts +17 -0
  483. package/utility/observable-array.lua +30 -0
  484. package/utility/preconditions.d.ts +23 -0
  485. package/utility/preconditions.lua +58 -0
  486. package/utility/records.d.ts +3 -0
  487. package/utility/records.lua +9 -0
  488. package/utility/reflection.d.ts +4 -0
  489. package/utility/reflection.lua +31 -0
  490. package/utility/strings.d.ts +2 -0
  491. package/utility/strings.lua +44 -0
  492. package/utility/types.d.ts +39 -0
  493. package/utility/types.lua +2 -0
@@ -0,0 +1,769 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__New = ____lualib.__TS__New
5
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
6
+ local __TS__StringSplit = ____lualib.__TS__StringSplit
7
+ local __TS__ArrayIsArray = ____lualib.__TS__ArrayIsArray
8
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
9
+ local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
10
+ local Set = ____lualib.Set
11
+ local __TS__ArrayFrom = ____lualib.__TS__ArrayFrom
12
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
13
+ local ____exports = {}
14
+ local ____object = require("objutil.object")
15
+ local ObjectDefinition = ____object.ObjectDefinition
16
+ local ____ability = require("objutil.ability")
17
+ local AbilityDefinitionCripple = ____ability.AbilityDefinitionCripple
18
+ local AbilityDefinitionHealingSalve = ____ability.AbilityDefinitionHealingSalve
19
+ local AbilityDefinitionInnerFire = ____ability.AbilityDefinitionInnerFire
20
+ local AbilityDefinitionSearingArrows = ____ability.AbilityDefinitionSearingArrows
21
+ local AbilityDefinitionSlowPoison = ____ability.AbilityDefinitionSlowPoison
22
+ local ____unit = require("core.types.unit")
23
+ local AttackType = ____unit.AttackType
24
+ local DamageType = ____unit.DamageType
25
+ local Unit = ____unit.Unit
26
+ local ____dummy = require("core.dummy")
27
+ local InstantDummyCaster = ____dummy.InstantDummyCaster
28
+ local idgen = require("objutil.idgen")
29
+ local ____timer = require("core.types.timer")
30
+ local Timer = ____timer.Timer
31
+ local ____exception = require("exception")
32
+ local IllegalStateException = ____exception.IllegalStateException
33
+ local ____assert = _G.assert
34
+ local ____pairs = _G.pairs
35
+ ____exports.BuffDefinition = __TS__Class()
36
+ local BuffDefinition = ____exports.BuffDefinition
37
+ BuffDefinition.name = "BuffDefinition"
38
+ __TS__ClassExtends(BuffDefinition, ObjectDefinition)
39
+ function BuffDefinition.prototype.____constructor(self, object)
40
+ ObjectDefinition.prototype.____constructor(self, object)
41
+ self.id = self.object.id
42
+ end
43
+ function BuffDefinition.create(self, baseId, id)
44
+ return __TS__New(
45
+ self,
46
+ currentMap.objects.buff:newObject(
47
+ id and util.id2s(id) or idgen.buff(),
48
+ util.id2s(baseId)
49
+ )
50
+ )
51
+ end
52
+ function BuffDefinition.of(self, id)
53
+ return __TS__New(
54
+ self,
55
+ currentMap.objects.buff:getObject(util.id2s(id))
56
+ )
57
+ end
58
+ function BuffDefinition.createDerived(derived, baseId, id)
59
+ return ____exports.BuffDefinition.create(derived, baseId, id)
60
+ end
61
+ __TS__SetDescriptor(
62
+ BuffDefinition.prototype,
63
+ "name",
64
+ {
65
+ get = function(self)
66
+ return self:getStringField("fnam")
67
+ end,
68
+ set = function(self, v)
69
+ self:setStringField("fnam", v)
70
+ end
71
+ },
72
+ true
73
+ )
74
+ __TS__SetDescriptor(
75
+ BuffDefinition.prototype,
76
+ "tooltip",
77
+ {
78
+ get = function(self)
79
+ return self:getStringField("ftip")
80
+ end,
81
+ set = function(self, v)
82
+ self:setStringField("ftip", v)
83
+ end
84
+ },
85
+ true
86
+ )
87
+ __TS__SetDescriptor(
88
+ BuffDefinition.prototype,
89
+ "tooltipExtended",
90
+ {
91
+ get = function(self)
92
+ return self:getStringField("fube")
93
+ end,
94
+ set = function(self, v)
95
+ self:setStringField("fube", v)
96
+ end
97
+ },
98
+ true
99
+ )
100
+ __TS__SetDescriptor(
101
+ BuffDefinition.prototype,
102
+ "icon",
103
+ {
104
+ get = function(self)
105
+ return self:getStringField("fart")
106
+ end,
107
+ set = function(self, v)
108
+ self:setStringField("fart", v)
109
+ end
110
+ },
111
+ true
112
+ )
113
+ __TS__SetDescriptor(
114
+ BuffDefinition.prototype,
115
+ "effectArt",
116
+ {
117
+ get = function(self)
118
+ return self:getStringField("feat")
119
+ end,
120
+ set = function(self, v)
121
+ self:setStringField("feat", v)
122
+ end
123
+ },
124
+ true
125
+ )
126
+ __TS__SetDescriptor(
127
+ BuffDefinition.prototype,
128
+ "specialArt",
129
+ {
130
+ get = function(self)
131
+ return {
132
+ model = self:getStringField("fsat"),
133
+ attachmentPoint = self:getStringField("fspt")
134
+ }
135
+ end,
136
+ set = function(self, v)
137
+ if type(v) == "string" then
138
+ self:setStringField("fsat", v)
139
+ self:setStringField("fspt", "")
140
+ else
141
+ self:setStringField("fsat", v.model)
142
+ self:setStringField("fspt", v.attachmentPoint)
143
+ end
144
+ end
145
+ },
146
+ true
147
+ )
148
+ __TS__SetDescriptor(
149
+ BuffDefinition.prototype,
150
+ "targetArt",
151
+ {
152
+ get = function(self)
153
+ local models = __TS__StringSplit(
154
+ self:getStringField("ftat"),
155
+ ","
156
+ )
157
+ local arts = {}
158
+ for i = 1, #models do
159
+ local attachmentPoint = self:getStringField("fta" .. tostring(i - 1)) or ""
160
+ arts[i] = {model = models[i], attachmentPoint = attachmentPoint == "" and "origin" or attachmentPoint}
161
+ end
162
+ return arts
163
+ end,
164
+ set = function(self, v)
165
+ if __TS__ArrayIsArray(v) then
166
+ self:setStringField(
167
+ "ftat",
168
+ table.concat(
169
+ __TS__ArrayMap(
170
+ v,
171
+ function(____, art) return type(art) == "string" and art or art.model end
172
+ ),
173
+ ","
174
+ )
175
+ )
176
+ local attachmentPoints = __TS__ArrayMap(
177
+ v,
178
+ function(____, art) return type(art) == "string" and "origin" or art.attachmentPoint end
179
+ )
180
+ if #__TS__ArrayFilter(
181
+ attachmentPoints,
182
+ function(____, attachmentPoint) return attachmentPoint == "origin" or attachmentPoint == "" end
183
+ ) == #attachmentPoints then
184
+ attachmentPoints = {}
185
+ end
186
+ for i = 0, 5 do
187
+ self:setStringField(
188
+ "fta" .. tostring(i),
189
+ attachmentPoints[i + 1] or ""
190
+ )
191
+ end
192
+ self:setNumberField("ftac", #attachmentPoints == 1 and 0 or #attachmentPoints)
193
+ else
194
+ self:setStringField(
195
+ "ftat",
196
+ type(v) == "string" and v or v.model
197
+ )
198
+ self:setStringField(
199
+ "fta0",
200
+ type(v) == "string" and "" or v.attachmentPoint
201
+ )
202
+ for i = 1, 5 do
203
+ self:setStringField(
204
+ "fta" .. tostring(i),
205
+ ""
206
+ )
207
+ end
208
+ self:setNumberField("ftac", 0)
209
+ end
210
+ end
211
+ },
212
+ true
213
+ )
214
+ __TS__SetDescriptor(
215
+ BuffDefinition.prototype,
216
+ "missileArt",
217
+ {
218
+ get = function(self)
219
+ return self:getStringField("fmat")
220
+ end,
221
+ set = function(self, v)
222
+ self:setStringField("fmat", v)
223
+ end
224
+ },
225
+ true
226
+ )
227
+ __TS__SetDescriptor(
228
+ BuffDefinition.prototype,
229
+ "missileArc",
230
+ {
231
+ get = function(self)
232
+ return self:getNumberField("fmac")
233
+ end,
234
+ set = function(self, v)
235
+ self:setNumberField("fmac", v)
236
+ end
237
+ },
238
+ true
239
+ )
240
+ __TS__SetDescriptor(
241
+ BuffDefinition.prototype,
242
+ "missileSpeed",
243
+ {
244
+ get = function(self)
245
+ return self:getNumberField("fmsp")
246
+ end,
247
+ set = function(self, v)
248
+ self:setNumberField("fmsp", v)
249
+ end
250
+ },
251
+ true
252
+ )
253
+ __TS__SetDescriptor(
254
+ BuffDefinition.prototype,
255
+ "missileHoming",
256
+ {
257
+ get = function(self)
258
+ return self:getBooleanField("fmho")
259
+ end,
260
+ set = function(self, v)
261
+ self:setBooleanField("fmho", v)
262
+ end
263
+ },
264
+ true
265
+ )
266
+ __TS__SetDescriptor(
267
+ BuffDefinition.prototype,
268
+ "sound",
269
+ {
270
+ get = function(self)
271
+ return self:getStringField("fefs")
272
+ end,
273
+ set = function(self, v)
274
+ self:setStringField("fefs", v)
275
+ end
276
+ },
277
+ true
278
+ )
279
+ __TS__SetDescriptor(
280
+ BuffDefinition.prototype,
281
+ "soundLooping",
282
+ {
283
+ get = function(self)
284
+ return self:getStringField("fefl")
285
+ end,
286
+ set = function(self, v)
287
+ self:setStringField("fefl", v)
288
+ end
289
+ },
290
+ true
291
+ )
292
+ local EVASION_ABILITY_IDS = postcompile(function()
293
+ local evasionParentAbilityIds = __TS__New(Set, {
294
+ "AEev",
295
+ "ACes",
296
+ "ACev",
297
+ "AIes",
298
+ "ANdb",
299
+ "Acdb",
300
+ "AOcr",
301
+ "ACct",
302
+ "AIcs"
303
+ })
304
+ local evasionAbilityIds = __TS__New(Set)
305
+ if currentMap then
306
+ for ____, ability in ____pairs(currentMap.objects.ability.all) do
307
+ if evasionParentAbilityIds:has(ability.parentId or ability.id) then
308
+ evasionAbilityIds:add(ability.id)
309
+ end
310
+ end
311
+ end
312
+ return __TS__ArrayMap(
313
+ __TS__ArrayFrom(evasionAbilityIds),
314
+ function(____, id) return fourCC(id) end
315
+ )
316
+ end)
317
+ local SEARING_ARROWS_ABILITY_ID = compiletime(function()
318
+ local ability = __TS__New(AbilityDefinitionSearingArrows)
319
+ ability.name = "[Buff System] Searing Arrows"
320
+ ability.levels = 1
321
+ ability.damageBonus = 0
322
+ ability.manaCost = 0
323
+ ability.missileArt = ""
324
+ ability.casterArt = ""
325
+ ability.targetArt = ""
326
+ ability.castRange = 99999
327
+ ability.requiredLevel = 6
328
+ ability.targetsAllowed = {
329
+ "ground",
330
+ "air",
331
+ "structure",
332
+ "ward",
333
+ "vulnerable",
334
+ "invulnerable"
335
+ }
336
+ return fourCC(ability.id)
337
+ end)
338
+ ____exports.BuffPreset = __TS__Class()
339
+ local BuffPreset = ____exports.BuffPreset
340
+ BuffPreset.name = "BuffPreset"
341
+ __TS__ClassExtends(BuffPreset, ____exports.BuffDefinition)
342
+ function BuffPreset.prototype.____constructor(self, object)
343
+ BuffPreset.____super.prototype.____constructor(self, object)
344
+ self._positive = true
345
+ self._magic = true
346
+ self._visible = false
347
+ self.levels = 1
348
+ end
349
+ function BuffPreset.prototype.createInnerFireAbility(self)
350
+ local ability = __TS__New(AbilityDefinitionInnerFire)
351
+ ability.levels = self.levels
352
+ ability.damageIncrease = 0
353
+ ability.armorBonus = 0
354
+ ability.healthRegenerationBonus = 0
355
+ ability.autoCastRange = 0
356
+ ability.buffs = {self.id}
357
+ return ability
358
+ end
359
+ function BuffPreset.prototype.createCrippleAbility(self)
360
+ local ability = __TS__New(AbilityDefinitionCripple)
361
+ ability.levels = self.levels
362
+ ability.movementSpeedReduction = 0
363
+ ability.attackSpeedReduction = 0
364
+ ability.damageReduction = 0
365
+ ability.buffs = {self.id}
366
+ return ability
367
+ end
368
+ function BuffPreset.prototype.createHealingSaveAbility(self)
369
+ local ability = __TS__New(AbilityDefinitionHealingSalve)
370
+ ability.levels = self.levels
371
+ ability.lifeRegenerated = 1.175494e-38
372
+ ability.manaRegenerated = 0
373
+ ability.allowWhenFull = "always"
374
+ ability.noTargetRequired = false
375
+ ability.dispelOnAttack = false
376
+ ability.buffs = {self.id, self.id, self.id}
377
+ return ability
378
+ end
379
+ function BuffPreset.prototype.createSlowPoisonAbility(self)
380
+ local ability = __TS__New(AbilityDefinitionSlowPoison)
381
+ ability.levels = self.levels
382
+ ability.damagePerSecond = 0
383
+ ability.movementSpeedFactor = 0
384
+ ability.attackSpeedFactor = 0
385
+ ability.stackingType = 0
386
+ ability.buffs = {self.id, self.id}
387
+ return ability
388
+ end
389
+ function BuffPreset.prototype.compiletime(self)
390
+ local ability = self.positive and (self.magic and self:createInnerFireAbility() or self:createHealingSaveAbility()) or (self.magic and self:createCrippleAbility() or self:createSlowPoisonAbility())
391
+ ability.manaCost = 0
392
+ ability.cooldown = 0
393
+ ability.durationNormal = 0
394
+ ability.durationHero = 0
395
+ ability.missileArt = ""
396
+ ability.casterArt = ""
397
+ ability.targetArt = ""
398
+ ability.castRange = 99999
399
+ ability.areaOfEffect = 0
400
+ ability.checkDependencies = false
401
+ ability.requirements = {}
402
+ ability.requiredLevel = 6
403
+ ability.targetsAllowed = {
404
+ "ground",
405
+ "air",
406
+ "structure",
407
+ "ward",
408
+ "vulnerable",
409
+ "invulnerable"
410
+ }
411
+ return {
412
+ buffId = util.s2id(self.id),
413
+ abilityId = util.s2id(ability.id),
414
+ positive = self.positive,
415
+ magic = self._magic
416
+ }
417
+ end
418
+ function BuffPreset.create(self, baseId, id)
419
+ return ____exports.BuffDefinition.createDerived(self, baseId or "BHbz", id)
420
+ end
421
+ __TS__SetDescriptor(
422
+ BuffPreset.prototype,
423
+ "positive",
424
+ {
425
+ get = function(self)
426
+ return self._positive
427
+ end,
428
+ set = function(self, v)
429
+ self._positive = v
430
+ end
431
+ },
432
+ true
433
+ )
434
+ __TS__SetDescriptor(
435
+ BuffPreset.prototype,
436
+ "magic",
437
+ {
438
+ get = function(self)
439
+ return self._magic
440
+ end,
441
+ set = function(self, v)
442
+ self._magic = v
443
+ end
444
+ },
445
+ true
446
+ )
447
+ __TS__SetDescriptor(
448
+ BuffPreset.prototype,
449
+ "visible",
450
+ {
451
+ get = function(self)
452
+ return self._visible
453
+ end,
454
+ set = function(self, v)
455
+ self._visible = v
456
+ end
457
+ },
458
+ true
459
+ )
460
+ local buffs = setmetatable(
461
+ {},
462
+ {
463
+ __mode = "k",
464
+ __index = function(self, unit)
465
+ local ____table = {}
466
+ self[unit] = ____table
467
+ return ____table
468
+ end
469
+ }
470
+ )
471
+ local IllegalBuffTargetException = {}
472
+ Unit.abilityCastingStartEvent[SEARING_ARROWS_ABILITY_ID]:addListener(function(unit)
473
+ unit:removeAbility(SEARING_ARROWS_ABILITY_ID)
474
+ end)
475
+ ____exports.Buff = __TS__Class()
476
+ local Buff = ____exports.Buff
477
+ Buff.name = "Buff"
478
+ function Buff.prototype.____constructor(self, unit, source, duration, level, preset)
479
+ if source == nil then
480
+ source = unit
481
+ end
482
+ if duration == nil then
483
+ duration = 0
484
+ end
485
+ if level == nil then
486
+ level = 0
487
+ end
488
+ self.unit = unit
489
+ self.source = source
490
+ self.duration = duration
491
+ self.level = level
492
+ self.preset = preset
493
+ if not unit.isAlive then
494
+ error(IllegalBuffTargetException, 0)
495
+ end
496
+ local constructor = self.constructor
497
+ local instances = buffs[unit]
498
+ local instance = instances[constructor]
499
+ if instance then
500
+ instance:destroy()
501
+ if not instance.destroyed then
502
+ error(
503
+ __TS__New(
504
+ IllegalStateException,
505
+ (("Cannot destroy previous " .. self.constructor.name) .. " buff instance on ") .. tostring(unit)
506
+ ),
507
+ 0
508
+ )
509
+ end
510
+ end
511
+ instances[constructor] = self
512
+ if preset then
513
+ local unitHandle = unit.handle
514
+ local slowPoisonMethod = not preset.positive and not preset.magic
515
+ if slowPoisonMethod then
516
+ for ____, abilityId in ipairs(EVASION_ABILITY_IDS) do
517
+ BlzUnitDisableAbility(unitHandle, abilityId, true, false)
518
+ end
519
+ end
520
+ local success = InstantDummyCaster:getInstance():castTarget(
521
+ unit.owner,
522
+ {preset.abilityId, SEARING_ARROWS_ABILITY_ID},
523
+ function(ability)
524
+ ability.level = level
525
+ local actualDuration = duration > 0 and duration or 2147483647
526
+ ability:setField(ABILITY_RLF_DURATION_NORMAL, level, actualDuration)
527
+ ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
528
+ end,
529
+ preset.positive and (preset.magic and orderId("innerfire") or 852609) or (preset.magic and orderId("cripple") or orderId("flamingarrowstarg")),
530
+ unit
531
+ )
532
+ if slowPoisonMethod then
533
+ for ____, abilityId in ipairs(EVASION_ABILITY_IDS) do
534
+ BlzUnitDisableAbility(unitHandle, abilityId, false, false)
535
+ end
536
+ end
537
+ local handle = BlzGetUnitAbility(unitHandle, preset.buffId)
538
+ if not success or handle == nil then
539
+ error(
540
+ __TS__New(
541
+ IllegalStateException,
542
+ (("Cannot apply " .. self.constructor.name) .. " buff status effect on ") .. tostring(unit)
543
+ ),
544
+ 0
545
+ )
546
+ end
547
+ self.handle = handle
548
+ end
549
+ if duration > 0 then
550
+ self.timer = Timer:simple(
551
+ duration,
552
+ function()
553
+ self.timer = nil
554
+ if not self.destroyed then
555
+ Timer:run(function()
556
+ if not self.destroyed then
557
+ self:destroy()
558
+ end
559
+ end)
560
+ self:onExpire()
561
+ end
562
+ end
563
+ )
564
+ end
565
+ end
566
+ function Buff.apply(self, ...)
567
+ local args = {...}
568
+ do
569
+ local function ____catch(e)
570
+ if e ~= IllegalBuffTargetException then
571
+ error(e, 0)
572
+ end
573
+ return true, nil
574
+ end
575
+ local ____try, ____hasReturned, ____returnValue = pcall(function()
576
+ return true, __TS__New(
577
+ self,
578
+ table.unpack(args)
579
+ )
580
+ end)
581
+ if not ____try then
582
+ ____hasReturned, ____returnValue = ____catch(____hasReturned)
583
+ end
584
+ if ____hasReturned then
585
+ return ____returnValue
586
+ end
587
+ end
588
+ end
589
+ function Buff.getInstance(self, unit)
590
+ return buffs[unit][self]
591
+ end
592
+ function Buff.isApplied(self, unit)
593
+ return buffs[unit][self] ~= nil
594
+ end
595
+ function Buff.ifApplied(self, unit, action)
596
+ local instance = buffs[unit][self]
597
+ if instance then
598
+ ____assert(__TS__InstanceOf(instance, self))
599
+ action(instance)
600
+ end
601
+ end
602
+ function Buff.prototype.destroy(self)
603
+ if self.destroyed then
604
+ error(
605
+ __TS__New(
606
+ IllegalStateException,
607
+ ((self.constructor.name .. " buff on ") .. tostring(self.unit)) .. " is already destroyed"
608
+ ),
609
+ 0
610
+ )
611
+ end
612
+ if self.timer then
613
+ self.timer:destroy()
614
+ self.timer = nil
615
+ end
616
+ if self.preset then
617
+ self.unit:removeAbility(self.preset.buffId)
618
+ end
619
+ buffs[self.unit][self.constructor] = nil
620
+ self.destroyed = true
621
+ end
622
+ function Buff.prototype.onDispel(self, source)
623
+ end
624
+ function Buff.prototype.onExpire(self)
625
+ end
626
+ Unit.deathEvent:addListener(function(unit)
627
+ for ____, buff in pairs(buffs[unit]) do
628
+ buff:destroy()
629
+ end
630
+ end)
631
+ Unit.destroyEvent:addListener(function(unit)
632
+ for ____, buff in pairs(buffs[unit]) do
633
+ buff:destroy()
634
+ end
635
+ end)
636
+ local unitRemoveBuffs = UnitRemoveBuffs
637
+ _G.UnitRemoveBuffs = function(unit, removePositive, removeNegative)
638
+ unitRemoveBuffs(unit, removePositive, removeNegative)
639
+ for ____, buff in pairs(buffs[Unit:of(unit)]) do
640
+ local preset = buff.preset
641
+ if preset then
642
+ local positive = preset.positive
643
+ if positive and removePositive or not positive and removeNegative then
644
+ buff:destroy()
645
+ end
646
+ end
647
+ end
648
+ end
649
+ local selfDispelAbilityIds = compiletime(__TS__ArrayMap(
650
+ {
651
+ "AHav",
652
+ "ANav",
653
+ "AOww",
654
+ "AHds",
655
+ "ACds",
656
+ "AIdv",
657
+ "AOmi",
658
+ "AIvu",
659
+ "AIvg",
660
+ "AIvl",
661
+ "ANef",
662
+ "Acef",
663
+ "AIxs",
664
+ "Amdf",
665
+ "AEtq"
666
+ },
667
+ function(____, id) return fourCC(id) end
668
+ ))
669
+ local targetDispelAbilityIds = compiletime(__TS__ArrayMap(
670
+ {
671
+ "Acyc",
672
+ "SCc1",
673
+ "ACcy",
674
+ "Acny",
675
+ "Aams",
676
+ "ACam",
677
+ "AIcy",
678
+ "Aprg",
679
+ "Apg2",
680
+ "Aadm",
681
+ "ACpu",
682
+ "ACdm",
683
+ "ACd2",
684
+ "Andm",
685
+ "AIlp",
686
+ "AIpg",
687
+ "AIps"
688
+ },
689
+ function(____, id) return fourCC(id) end
690
+ ))
691
+ local pointDispelAbilityIds = compiletime(__TS__ArrayMap(
692
+ {
693
+ "Adis",
694
+ "Adcn",
695
+ "Adch",
696
+ "Advm",
697
+ "Adtn",
698
+ "ACde",
699
+ "Adsm",
700
+ "AIdi",
701
+ "AIds",
702
+ "APdi"
703
+ },
704
+ function(____, id) return fourCC(id) end
705
+ ))
706
+ local function checkBuffs(unit, dispel, dispelSource)
707
+ for ____, buff in pairs(buffs[unit]) do
708
+ local preset = buff.preset
709
+ local handle = buff.handle
710
+ if handle ~= nil and preset ~= nil and BlzGetUnitAbility(unit.handle, preset.buffId) ~= handle then
711
+ if dispel == true and preset.magic then
712
+ buff.onDispel(buff, dispelSource)
713
+ end
714
+ buff:destroy()
715
+ end
716
+ end
717
+ end
718
+ Unit.abilityChannelingStartEvent[fourCC("AOvd")]:addListener(function(caster, ability)
719
+ local targets = Unit:getInCollisionRange(
720
+ caster.x,
721
+ caster.y,
722
+ ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
723
+ )
724
+ Timer:run(function()
725
+ for ____, target in ipairs(targets) do
726
+ checkBuffs(target, true, caster)
727
+ end
728
+ end)
729
+ end)
730
+ for ____, selfDispelAbilityId in ipairs(selfDispelAbilityIds) do
731
+ Unit.abilityChannelingStartEvent[selfDispelAbilityId]:addListener(function(caster)
732
+ Timer:run(function()
733
+ checkBuffs(caster, true, caster)
734
+ end)
735
+ end)
736
+ end
737
+ for ____, targetDispelAbilityId in ipairs(targetDispelAbilityIds) do
738
+ Unit.onUnitTargetCast[targetDispelAbilityId]:addListener(function(caster, ability, target)
739
+ Timer:run(function()
740
+ checkBuffs(target, true, caster)
741
+ end)
742
+ end)
743
+ end
744
+ for ____, pointDispelAbilityId in ipairs(pointDispelAbilityIds) do
745
+ Unit.onPointCast[pointDispelAbilityId]:addListener(function(caster, ability, x, y)
746
+ local targets = Unit:getInCollisionRange(
747
+ x,
748
+ y,
749
+ ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
750
+ )
751
+ Timer:run(function()
752
+ for ____, target in ipairs(targets) do
753
+ checkBuffs(target, true, caster)
754
+ end
755
+ end)
756
+ end)
757
+ end
758
+ Unit.onDamaging:addListener(function(source, target, event)
759
+ if event.amount == 0 and event.attackType == AttackType.SPELL and event.damageType == DamageType.NORMAL and not event.isAttack then
760
+ Timer:run(function()
761
+ checkBuffs(target, true, source)
762
+ end)
763
+ end
764
+ end)
765
+ Unit.onItemPickup:addListener(function(unit, item)
766
+ if item.powerup and item:hasAbility(fourCC("APdi")) then
767
+ end
768
+ end)
769
+ return ____exports