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,25 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local ____exports = {}
5
+ local ____ability = require("engine.behaviour.ability")
6
+ local AbilityBehavior = ____ability.AbilityBehavior
7
+ local ____ability = require("engine.standard.fields.ability")
8
+ local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
9
+ local MANA_COST_ABILITY_INTEGER_LEVEL_FIELD = ____ability.MANA_COST_ABILITY_INTEGER_LEVEL_FIELD
10
+ ____exports.InstantImpactAbilityBehavior = __TS__Class()
11
+ local InstantImpactAbilityBehavior = ____exports.InstantImpactAbilityBehavior
12
+ InstantImpactAbilityBehavior.name = "InstantImpactAbilityBehavior"
13
+ __TS__ClassExtends(InstantImpactAbilityBehavior, AbilityBehavior)
14
+ function InstantImpactAbilityBehavior.prototype.onCastingStart(self, caster)
15
+ local manaCost = self:resolveCurrentAbilityDependentValue(MANA_COST_ABILITY_INTEGER_LEVEL_FIELD)
16
+ local cooldown = self:resolveCurrentAbilityDependentValue(COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD)
17
+ caster.mana = caster.mana - manaCost
18
+ if cooldown == 0 then
19
+ caster:interruptCast(self.ability.typeId)
20
+ else
21
+ caster:startAbilityCooldown(self.ability.typeId, cooldown)
22
+ end
23
+ AbilityBehavior:forAll(self.ability, "onImpact", caster)
24
+ end
25
+ return ____exports
@@ -0,0 +1,40 @@
1
+ /** @noSelfInFile */
2
+ import { Behavior } from "../behavior";
3
+ import { Unit } from "../unit";
4
+ import { Ability } from "../internal/ability";
5
+ import { AbilityTypeId } from "../object-data/entry/ability-type";
6
+ import { Widget } from "../../core/types/widget";
7
+ import { Item } from "../internal/item";
8
+ import { Destructable } from "../../core/types/destructable";
9
+ import { EffectParameters } from "../../core/types/effect";
10
+ import { AbilityDependentValue } from "../object-field/ability";
11
+ export type AbilityBehaviorConstructor<Args extends any[]> = new (ability: Ability, ...args: Args) => AbilityBehavior;
12
+ export declare abstract class AbilityBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Ability, PeriodicActionParameters> {
13
+ constructor(ability: Ability);
14
+ get ability(): Ability;
15
+ protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value: AbilityDependentValue<T>): T;
16
+ protected flashAreaEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
17
+ protected flashEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
18
+ protected flashSpecialEffect(...args: [...pointOrWidget: [x: number, y: number] | [widget: Widget], duration?: number]): void;
19
+ onUnitGainAbility(_unit: Unit): void;
20
+ onUnitLoseAbility(_unit: Unit): void;
21
+ onCastingStart(caster: Unit): void;
22
+ onCastingFinish(caster: Unit): void;
23
+ onChannelingStart(caster: Unit): void;
24
+ onWidgetTargetChannelingStart(caster: Unit, target: Widget): void;
25
+ onUnitTargetChannelingStart(caster: Unit, target: Unit): void;
26
+ onItemTargetChannelingStart(caster: Unit, target: Item): void;
27
+ onDestructibleTargetChannelingStart(caster: Unit, target: Destructable): void;
28
+ onPointTargetChannelingStart(caster: Unit, x: number, y: number): void;
29
+ onNoTargetChannelingStart(caster: Unit): void;
30
+ onImpact(caster: Unit): void;
31
+ onWidgetTargetImpact(caster: Unit, target: Widget): void;
32
+ onUnitTargetImpact(caster: Unit, target: Unit): void;
33
+ onItemTargetImpact(caster: Unit, target: Item): void;
34
+ onDestructibleTargetImpact(caster: Unit, target: Destructable): void;
35
+ onPointTargetImpact(caster: Unit, x: number, y: number): void;
36
+ onNoTargetImpact(caster: Unit): void;
37
+ onChannelingFinish(caster: Unit): void;
38
+ onStop(caster: Unit): void;
39
+ static bindAbilityType<Args extends any[]>(this: AbilityBehaviorConstructor<Args>, abilityTypeId: AbilityTypeId, ...args: Args): void;
40
+ }
@@ -0,0 +1,175 @@
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 ____exports = {}
7
+ local ____behavior = require("engine.behavior")
8
+ local Behavior = ____behavior.Behavior
9
+ local ____unit = require("engine.unit")
10
+ local Unit = ____unit.Unit
11
+ local ____ability = require("engine.internal.ability")
12
+ local Ability = ____ability.Ability
13
+ local ____effect = require("core.types.effect")
14
+ local Effect = ____effect.Effect
15
+ local ____ability = require("engine.standard.fields.ability")
16
+ local AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
17
+ local EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
18
+ local SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD = ____ability.SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD
19
+ local SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
20
+ local ____ability = require("engine.object-field.ability")
21
+ local resolveCurrentAbilityDependentValue = ____ability.resolveCurrentAbilityDependentValue
22
+ local ____timer = require("core.types.timer")
23
+ local Timer = ____timer.Timer
24
+ local createBehaviorFunctionsByAbilityTypeId = {}
25
+ ____exports.AbilityBehavior = __TS__Class()
26
+ local AbilityBehavior = ____exports.AbilityBehavior
27
+ AbilityBehavior.name = "AbilityBehavior"
28
+ __TS__ClassExtends(AbilityBehavior, Behavior)
29
+ function AbilityBehavior.prototype.____constructor(self, ability)
30
+ Behavior.prototype.____constructor(self, ability)
31
+ end
32
+ function AbilityBehavior.prototype.resolveCurrentAbilityDependentValue(self, value)
33
+ return resolveCurrentAbilityDependentValue(self.ability, value)
34
+ end
35
+ function AbilityBehavior.prototype.flashAreaEffect(self, x, y, ...)
36
+ Effect:flash(
37
+ AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
38
+ x,
39
+ y,
40
+ ...
41
+ )
42
+ end
43
+ function AbilityBehavior.prototype.flashEffect(self, x, y, ...)
44
+ Effect:flash(
45
+ EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
46
+ x,
47
+ y,
48
+ ...
49
+ )
50
+ end
51
+ function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrDuration, duration)
52
+ if type(xOrWidget) == "number" then
53
+ Effect:flash(
54
+ SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
55
+ xOrWidget,
56
+ yOrDuration,
57
+ duration
58
+ )
59
+ else
60
+ Effect:flash(
61
+ SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
62
+ xOrWidget,
63
+ SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability),
64
+ yOrDuration
65
+ )
66
+ end
67
+ end
68
+ function AbilityBehavior.prototype.onUnitGainAbility(self, _unit)
69
+ end
70
+ function AbilityBehavior.prototype.onUnitLoseAbility(self, _unit)
71
+ end
72
+ function AbilityBehavior.prototype.onCastingStart(self, caster)
73
+ end
74
+ function AbilityBehavior.prototype.onCastingFinish(self, caster)
75
+ end
76
+ function AbilityBehavior.prototype.onChannelingStart(self, caster)
77
+ end
78
+ function AbilityBehavior.prototype.onWidgetTargetChannelingStart(self, caster, target)
79
+ end
80
+ function AbilityBehavior.prototype.onUnitTargetChannelingStart(self, caster, target)
81
+ end
82
+ function AbilityBehavior.prototype.onItemTargetChannelingStart(self, caster, target)
83
+ end
84
+ function AbilityBehavior.prototype.onDestructibleTargetChannelingStart(self, caster, target)
85
+ end
86
+ function AbilityBehavior.prototype.onPointTargetChannelingStart(self, caster, x, y)
87
+ end
88
+ function AbilityBehavior.prototype.onNoTargetChannelingStart(self, caster)
89
+ end
90
+ function AbilityBehavior.prototype.onImpact(self, caster)
91
+ end
92
+ function AbilityBehavior.prototype.onWidgetTargetImpact(self, caster, target)
93
+ end
94
+ function AbilityBehavior.prototype.onUnitTargetImpact(self, caster, target)
95
+ end
96
+ function AbilityBehavior.prototype.onItemTargetImpact(self, caster, target)
97
+ end
98
+ function AbilityBehavior.prototype.onDestructibleTargetImpact(self, caster, target)
99
+ end
100
+ function AbilityBehavior.prototype.onPointTargetImpact(self, caster, x, y)
101
+ end
102
+ function AbilityBehavior.prototype.onNoTargetImpact(self, caster)
103
+ end
104
+ function AbilityBehavior.prototype.onChannelingFinish(self, caster)
105
+ end
106
+ function AbilityBehavior.prototype.onStop(self, caster)
107
+ end
108
+ function AbilityBehavior.bindAbilityType(self, abilityTypeId, ...)
109
+ local args = {...}
110
+ local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[abilityTypeId]
111
+ if createBehaviorFunctions == nil then
112
+ createBehaviorFunctions = {}
113
+ createBehaviorFunctionsByAbilityTypeId[abilityTypeId] = createBehaviorFunctions
114
+ end
115
+ createBehaviorFunctions[#createBehaviorFunctions + 1] = function(ability)
116
+ return __TS__New(
117
+ self,
118
+ ability,
119
+ table.unpack(args)
120
+ )
121
+ end
122
+ end
123
+ __TS__SetDescriptor(
124
+ AbilityBehavior.prototype,
125
+ "ability",
126
+ {get = function(self)
127
+ return self.object
128
+ end},
129
+ true
130
+ );
131
+ (function(self)
132
+ local function createUnitEventListener(key)
133
+ return function(unit, ability, ...)
134
+ ____exports.AbilityBehavior:forAll(ability, key, unit, ...)
135
+ end
136
+ end
137
+ local function createZeroTimerUnitEventListener(key)
138
+ local unitEventListener = createUnitEventListener(key)
139
+ return function(unit, ability, ...)
140
+ Timer:run(unitEventListener, unit, ability, ...)
141
+ end
142
+ end
143
+ Unit.abilityGainedEvent:addListener(createUnitEventListener("onUnitGainAbility"))
144
+ Unit.abilityLostEvent:addListener(createUnitEventListener("onUnitLoseAbility"))
145
+ Unit.abilityCastingStartEvent:addListener(createUnitEventListener("onCastingStart"))
146
+ Unit.abilityCastingFinishEvent:addListener(createUnitEventListener("onCastingFinish"))
147
+ Unit.abilityChannelingStartEvent:addListener(createUnitEventListener("onChannelingStart"))
148
+ Unit.abilityWidgetTargetChannelingStartEvent:addListener(createUnitEventListener("onWidgetTargetChannelingStart"))
149
+ Unit.abilityUnitTargetChannelingStartEvent:addListener(createUnitEventListener("onUnitTargetChannelingStart"))
150
+ Unit.abilityItemTargetChannelingStartEvent:addListener(createUnitEventListener("onItemTargetChannelingStart"))
151
+ Unit.abilityDestructibleTargetChannelingStartEvent:addListener(createUnitEventListener("onDestructibleTargetChannelingStart"))
152
+ Unit.abilityPointTargetChannelingStartEvent:addListener(createUnitEventListener("onPointTargetChannelingStart"))
153
+ Unit.abilityNoTargetChannelingStartEvent:addListener(createUnitEventListener("onNoTargetChannelingStart"))
154
+ Unit.abilityChannelingStartEvent:addListener(createZeroTimerUnitEventListener("onImpact"))
155
+ Unit.abilityWidgetTargetChannelingStartEvent:addListener(createZeroTimerUnitEventListener("onWidgetTargetImpact"))
156
+ Unit.abilityUnitTargetChannelingStartEvent:addListener(createZeroTimerUnitEventListener("onUnitTargetImpact"))
157
+ Unit.abilityItemTargetChannelingStartEvent:addListener(createZeroTimerUnitEventListener("onItemTargetImpact"))
158
+ Unit.abilityDestructibleTargetChannelingStartEvent:addListener(createZeroTimerUnitEventListener("onDestructibleTargetImpact"))
159
+ Unit.abilityPointTargetChannelingStartEvent:addListener(createZeroTimerUnitEventListener("onPointTargetImpact"))
160
+ Unit.abilityNoTargetChannelingStartEvent:addListener(createZeroTimerUnitEventListener("onNoTargetImpact"))
161
+ Unit.abilityChannelingFinishEvent:addListener(createUnitEventListener("onChannelingFinish"))
162
+ Unit.abilityStopEvent:addListener(createUnitEventListener("onStop"))
163
+ end)(AbilityBehavior)
164
+ Ability.onCreate:addListener(function(ability)
165
+ local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[ability.typeId]
166
+ if createBehaviorFunctions ~= nil then
167
+ for ____, createBehavior in ipairs(createBehaviorFunctions) do
168
+ createBehavior(ability)
169
+ end
170
+ end
171
+ end)
172
+ Ability.destroyEvent:addListener(function(ability)
173
+ ____exports.AbilityBehavior:forAll(ability, "destroy")
174
+ end)
175
+ return ____exports
@@ -0,0 +1,19 @@
1
+ /// <reference types="@typescript-to-lua/language-extensions" />
2
+ /** @noSelfInFile */
3
+ import { UnitBehavior } from "../unit";
4
+ import { Unit } from "../../unit";
5
+ import { BuffTypeId } from "../../object-data/entry/buff-type";
6
+ import { TextTagPreset } from "../../text-tag";
7
+ import { Destructor } from "../../../destroyable";
8
+ export type StunImmunityUnitBehaviourParameters = {
9
+ buffTypeIds?: LuaSet<BuffTypeId>;
10
+ textTagPreset?: TextTagPreset;
11
+ textTagText?: string;
12
+ };
13
+ export declare class StunImmunityUnitBehavior extends UnitBehavior {
14
+ private readonly parameters;
15
+ static defaultParameters: StunImmunityUnitBehaviourParameters;
16
+ constructor(unit: Unit, parameters?: StunImmunityUnitBehaviourParameters);
17
+ protected onDestroy(): Destructor;
18
+ private onBuffsCheck;
19
+ }
@@ -0,0 +1,67 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ArrayFlat = ____lualib.__TS__ArrayFlat
3
+ local __TS__Class = ____lualib.__TS__Class
4
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
5
+ local ____exports = {}
6
+ local ____unit = require("engine.behaviour.unit")
7
+ local UnitBehavior = ____unit.UnitBehavior
8
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
9
+ local AbilityType = ____ability_2Dtype.AbilityType
10
+ local ____arrays = require("utility.arrays")
11
+ local flatMapToLuaSet = ____arrays.flatMapToLuaSet
12
+ local map = ____arrays.map
13
+ local ____text_2Dtag = require("engine.text-tag")
14
+ local TextTag = ____text_2Dtag.TextTag
15
+ local DEFAULT_BUFF_TYPE_IDS = postcompile(function()
16
+ return flatMapToLuaSet(
17
+ AbilityType:getAllByBaseIds(map({
18
+ "Aslo",
19
+ "AHtc",
20
+ "Aens",
21
+ "Aprg",
22
+ "Apg2",
23
+ "AOeq",
24
+ "SNeq",
25
+ "Aweb",
26
+ "Afra",
27
+ "Afrb",
28
+ "Afrc",
29
+ "Afr2",
30
+ "Acri",
31
+ "Scri",
32
+ "AUfn",
33
+ "Aspo",
34
+ "AEer",
35
+ "ACwb"
36
+ }, fourCC)),
37
+ function(abilityType) return __TS__ArrayFlat(abilityType.buffTypeIds) end
38
+ )
39
+ end)
40
+ ____exports.StunImmunityUnitBehavior = __TS__Class()
41
+ local StunImmunityUnitBehavior = ____exports.StunImmunityUnitBehavior
42
+ StunImmunityUnitBehavior.name = "StunImmunityUnitBehavior"
43
+ __TS__ClassExtends(StunImmunityUnitBehavior, UnitBehavior)
44
+ function StunImmunityUnitBehavior.prototype.____constructor(self, unit, parameters)
45
+ if parameters == nil then
46
+ parameters = ____exports.StunImmunityUnitBehavior.defaultParameters
47
+ end
48
+ UnitBehavior.prototype.____constructor(self, unit)
49
+ self.parameters = parameters
50
+ unit:decrementStunCounter()
51
+ self:onBuffsCheck()
52
+ end
53
+ function StunImmunityUnitBehavior.prototype.onDestroy(self)
54
+ self.unit:incrementStunCounter()
55
+ return UnitBehavior.prototype.onDestroy(self)
56
+ end
57
+ function StunImmunityUnitBehavior.prototype.onBuffsCheck(self)
58
+ local hasRemovedBuffs = false
59
+ for buffTypeId in pairs(self.parameters.buffTypeIds or DEFAULT_BUFF_TYPE_IDS) do
60
+ hasRemovedBuffs = hasRemovedBuffs or self.unit:removeBuff(buffTypeId)
61
+ end
62
+ if hasRemovedBuffs and self.parameters.textTagText ~= nil then
63
+ TextTag:flash(TextTag.MISS, self.parameters.textTagText, self.unit.x, self.unit.y)
64
+ end
65
+ end
66
+ StunImmunityUnitBehavior.defaultParameters = {buffTypeIds = DEFAULT_BUFF_TYPE_IDS, textTagPreset = TextTag.MISS, textTagText = nil}
67
+ return ____exports
@@ -0,0 +1,20 @@
1
+ /** @noSelfInFile */
2
+ import { Behavior } from "../behavior";
3
+ import { Ability } from "../internal/ability";
4
+ import { DamageEvent, DamagingEvent, Unit } from "../internal/unit";
5
+ import "../internal/unit-missile-launch";
6
+ export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
7
+ export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
8
+ constructor(unit: Unit);
9
+ get unit(): Unit;
10
+ onAutoAttackStart(target: Unit): void;
11
+ onAutoAttackFinish(target: Unit): void;
12
+ onDamageDealing(target: Unit, event: DamagingEvent): void;
13
+ onDamageDealt(target: Unit, event: DamageEvent): void;
14
+ onDamageReceiving(source: Unit | undefined, event: DamagingEvent): void;
15
+ onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
16
+ protected onAbilityGained(ability: Ability): void;
17
+ protected onAbilityLost(ability: Ability): void;
18
+ onKill(target: Unit): void;
19
+ onDeath(source: Unit | undefined): void;
20
+ }
@@ -0,0 +1,75 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____behavior = require("engine.behavior")
7
+ local Behavior = ____behavior.Behavior
8
+ local ____unit = require("engine.internal.unit")
9
+ local Unit = ____unit.Unit
10
+ require("engine.internal.unit-missile-launch")
11
+ ____exports.UnitBehavior = __TS__Class()
12
+ local UnitBehavior = ____exports.UnitBehavior
13
+ UnitBehavior.name = "UnitBehavior"
14
+ __TS__ClassExtends(UnitBehavior, Behavior)
15
+ function UnitBehavior.prototype.____constructor(self, unit)
16
+ Behavior.prototype.____constructor(self, unit)
17
+ end
18
+ function UnitBehavior.prototype.onAutoAttackStart(self, target)
19
+ end
20
+ function UnitBehavior.prototype.onAutoAttackFinish(self, target)
21
+ end
22
+ function UnitBehavior.prototype.onDamageDealing(self, target, event)
23
+ end
24
+ function UnitBehavior.prototype.onDamageDealt(self, target, event)
25
+ end
26
+ function UnitBehavior.prototype.onDamageReceiving(self, source, event)
27
+ end
28
+ function UnitBehavior.prototype.onDamageReceived(self, source, event)
29
+ end
30
+ function UnitBehavior.prototype.onAbilityGained(self, ability)
31
+ end
32
+ function UnitBehavior.prototype.onAbilityLost(self, ability)
33
+ end
34
+ function UnitBehavior.prototype.onKill(self, target)
35
+ end
36
+ function UnitBehavior.prototype.onDeath(self, source)
37
+ end
38
+ __TS__SetDescriptor(
39
+ UnitBehavior.prototype,
40
+ "unit",
41
+ {get = function(self)
42
+ return self.object
43
+ end},
44
+ true
45
+ );
46
+ (function(self)
47
+ Unit.autoAttackStartEvent:addListener(function(source, target)
48
+ ____exports.UnitBehavior:forAll(source, "onAutoAttackStart", target)
49
+ end)
50
+ Unit.autoAttackFinishEvent:addListener(function(source, target)
51
+ ____exports.UnitBehavior:forAll(source, "onAutoAttackFinish", target)
52
+ end)
53
+ Unit.onDamaging:addListener(function(source, target, event)
54
+ if source ~= nil then
55
+ ____exports.UnitBehavior:forAll(source, "onDamageDealing", target, event)
56
+ end
57
+ ____exports.UnitBehavior:forAll(target, "onDamageReceiving", source, event)
58
+ end)
59
+ Unit.onDamage:addListener(function(source, target, event)
60
+ if source ~= nil then
61
+ ____exports.UnitBehavior:forAll(source, "onDamageDealt", target, event)
62
+ end
63
+ ____exports.UnitBehavior:forAll(target, "onDamageReceived", source, event)
64
+ end)
65
+ Unit.deathEvent:addListener(function(target, source)
66
+ if source ~= nil then
67
+ ____exports.UnitBehavior:forAll(source, "onKill", target)
68
+ end
69
+ ____exports.UnitBehavior:forAll(target, "onDeath", source)
70
+ end)
71
+ end)(UnitBehavior)
72
+ Unit.destroyEvent:addListener(function(unit)
73
+ ____exports.UnitBehavior:forAll(unit, "destroy")
74
+ end)
75
+ return ____exports
@@ -0,0 +1,221 @@
1
+ /** @noSelfInFile */
2
+ import { DamageEvent, Unit } from "./internal/unit";
3
+ import { ApplicableBuffTypeId } from "./object-data/entry/buff-type/applicable";
4
+ import { Ability } from "./internal/ability";
5
+ import { AbilityTypeId } from "./object-data/entry/ability-type";
6
+ import { BuffPolarity } from "./object-data/auxiliary/buff-polarity";
7
+ import { BuffResistanceType } from "./object-data/auxiliary/buff-resistance-type";
8
+ import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
9
+ import { CombatClassifications } from "./object-data/auxiliary/combat-classification";
10
+ import { IsExactlyAny, NonEmptyArray, Prohibit } from "../utility/types";
11
+ import { UnitBehavior } from "./behaviour/unit";
12
+ import type { Widget } from "../core/types/widget";
13
+ import { Destructor } from "../destroyable";
14
+ export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
15
+ type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
16
+ type IntegerParameterValueType = number | AbilityIntegerField | AbilityIntegerLevelField;
17
+ type BooleanParameterValueType = boolean | AbilityBooleanField | AbilityBooleanLevelField;
18
+ export declare class BuffUniqueGroup {
19
+ }
20
+ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
21
+ spellStealPriority?: number;
22
+ level?: number;
23
+ duration?: number;
24
+ learnLevelMinimum?: number;
25
+ source?: Unit;
26
+ behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
27
+ abilityTypeIds?: Record<AbilityTypeId, {
28
+ [numberField: (AbilityNumberField | AbilityNumberLevelField) & symbol]: NumberParameterValueType;
29
+ } & {
30
+ /** Default `true`. */
31
+ readonly isButtonVisible?: boolean;
32
+ /** Default is the level of the source ability or 0 if it is absent. */
33
+ readonly level?: number;
34
+ }>;
35
+ damageUponDeathAllowedTargetCombatClassifications?: CombatClassifications | AbilityCombatClassificationsLevelField;
36
+ damageUponDeath?: NumberParameterValueType;
37
+ damageUponDeathRange?: NumberParameterValueType;
38
+ mediumDamageUponDeath?: NumberParameterValueType;
39
+ mediumDamageUponDeathRange?: NumberParameterValueType;
40
+ smallDamageUponDeath?: NumberParameterValueType;
41
+ smallDamageUponDeathRange?: NumberParameterValueType;
42
+ damageOverDuration?: NumberParameterValueType;
43
+ damagePerInterval?: NumberParameterValueType;
44
+ damageInterval?: NumberParameterValueType;
45
+ healingOverDuration?: NumberParameterValueType;
46
+ healingPerInterval?: NumberParameterValueType;
47
+ healingInterval?: NumberParameterValueType;
48
+ damageIncrease?: NumberParameterValueType;
49
+ damageIncreaseFactor?: NumberParameterValueType;
50
+ armorIncrease?: NumberParameterValueType;
51
+ armorIncreaseFactor?: NumberParameterValueType;
52
+ attackSpeedIncreaseFactor?: NumberParameterValueType;
53
+ movementSpeedIncreaseFactor?: NumberParameterValueType;
54
+ receivedDamageFactor?: NumberParameterValueType;
55
+ receivedMagicDamageFactor?: NumberParameterValueType;
56
+ durationIncreaseOnAutoAttack?: NumberParameterValueType;
57
+ maximumRemainingDuration?: NumberParameterValueType;
58
+ maximumDuration?: NumberParameterValueType;
59
+ stuns?: BooleanParameterValueType;
60
+ ignoresStunImmunity?: BooleanParameterValueType;
61
+ providesStunImmunity?: BooleanParameterValueType;
62
+ providesSpellImmunity?: BooleanParameterValueType;
63
+ providesInvulnerability?: BooleanParameterValueType;
64
+ disablesAutoAttack?: BooleanParameterValueType;
65
+ destroysOnDamage?: BooleanParameterValueType;
66
+ maximumAutoAttackCount?: IntegerParameterValueType;
67
+ uniqueGroup?: BuffUniqueGroup;
68
+ } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : {});
69
+ declare const enum BuffPropertyKey {
70
+ UNIT = 100,
71
+ SOURCE = 101,
72
+ DURATION = 102,
73
+ UNIQUE_GROUP = 103,
74
+ EFFECT_MODEL_PATH = 104,
75
+ SPECIAL_EFFECT_MODEL_PATH = 105,
76
+ DURATION_INCREASE_ON_AUTO_ATTACK = 106,
77
+ MAXIMUM_DURATION = 107,
78
+ MAXIMUM_REMAINING_DURATION = 108,
79
+ DAMAGE_OVER_DURATION = 109,
80
+ DAMAGE_PER_INTERVAL = 110,
81
+ DAMAGE_INTERVAL = 111,
82
+ REMAINING_DAMAGE_OVER_DURATION = 112,
83
+ DAMAGE_INTERVAL_TIMER = 113,
84
+ HEALING_OVER_DURATION = 114,
85
+ HEALING_PER_INTERVAL = 115,
86
+ HEALING_INTERVAL = 116,
87
+ REMAINING_HEALING_OVER_DURATION = 117,
88
+ HEALING_INTERVAL_TIMER = 118,
89
+ DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 119,
90
+ DAMAGE_UPON_DEATH = 120,
91
+ DAMAGE_UPON_DEATH_RANGE = 121,
92
+ MEDIUM_DAMAGE_UPON_DEATH = 122,
93
+ MEDIUM_DAMAGE_UPON_DEATH_RANGE = 123,
94
+ SMALL_DAMAGE_UPON_DEATH = 124,
95
+ SMALL_DAMAGE_UPON_DEATH_RANGE = 125,
96
+ AUTO_ATTACK_COUNT = 126,
97
+ MAXIMUM_AUTO_ATTACK_COUNT = 127,
98
+ STUNS = 128,
99
+ IGNORES_STUN_IMMUNITY = 129,
100
+ DISABLES_AUTO_ATTACK = 130,
101
+ PROVIDES_INVULNERABILITY = 131
102
+ }
103
+ export declare const enum BuffTypeIdSelectionPolicy {
104
+ LEAST_DURATION = 0
105
+ }
106
+ export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
107
+ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
108
+ ...typeId: [ApplicableBuffTypeId] | [
109
+ typeIds: NonEmptyArray<ApplicableBuffTypeId>,
110
+ typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
111
+ ],
112
+ polarity: BuffPolarity,
113
+ resistanceType: BuffResistanceType,
114
+ ...abilityOrParameters: [
115
+ ability: Ability,
116
+ parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
117
+ ] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
118
+ ];
119
+ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = {}> extends UnitBehavior {
120
+ private _unit;
121
+ protected readonly __additionalParametersBrand?: AdditionalParameters;
122
+ private [BuffPropertyKey.UNIT];
123
+ private [BuffPropertyKey.SOURCE]?;
124
+ private [BuffPropertyKey.DURATION];
125
+ private [BuffPropertyKey.UNIQUE_GROUP]?;
126
+ private [BuffPropertyKey.EFFECT_MODEL_PATH];
127
+ private [BuffPropertyKey.SPECIAL_EFFECT_MODEL_PATH];
128
+ private [BuffPropertyKey.DURATION_INCREASE_ON_AUTO_ATTACK]?;
129
+ private [BuffPropertyKey.MAXIMUM_DURATION]?;
130
+ private [BuffPropertyKey.MAXIMUM_REMAINING_DURATION]?;
131
+ private [BuffPropertyKey.DAMAGE_OVER_DURATION]?;
132
+ private [BuffPropertyKey.DAMAGE_PER_INTERVAL]?;
133
+ private [BuffPropertyKey.DAMAGE_INTERVAL]?;
134
+ private [BuffPropertyKey.REMAINING_DAMAGE_OVER_DURATION]?;
135
+ private [BuffPropertyKey.DAMAGE_INTERVAL_TIMER]?;
136
+ private [BuffPropertyKey.HEALING_OVER_DURATION]?;
137
+ private [BuffPropertyKey.HEALING_PER_INTERVAL]?;
138
+ private [BuffPropertyKey.HEALING_INTERVAL]?;
139
+ private [BuffPropertyKey.REMAINING_HEALING_OVER_DURATION]?;
140
+ private [BuffPropertyKey.HEALING_INTERVAL_TIMER]?;
141
+ private [BuffPropertyKey.DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS]?;
142
+ private [BuffPropertyKey.DAMAGE_UPON_DEATH]?;
143
+ private [BuffPropertyKey.DAMAGE_UPON_DEATH_RANGE]?;
144
+ private [BuffPropertyKey.MEDIUM_DAMAGE_UPON_DEATH]?;
145
+ private [BuffPropertyKey.MEDIUM_DAMAGE_UPON_DEATH_RANGE]?;
146
+ private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH]?;
147
+ private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
148
+ private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
149
+ private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
150
+ private [BuffPropertyKey.STUNS]?;
151
+ private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
152
+ private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
153
+ private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
154
+ protected static readonly defaultParameters: BuffParameters;
155
+ get source(): Unit;
156
+ readonly typeId: ApplicableBuffTypeId;
157
+ readonly polarity: BuffPolarity;
158
+ readonly resistanceType: BuffResistanceType;
159
+ readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : keyof AdditionalParameters extends never ? undefined : {
160
+ [K in keyof Omit<AdditionalParameters, keyof BuffParameters>]: AdditionalParameters[K] extends AbilityDependentValue<infer T> ? T : AdditionalParameters[K];
161
+ };
162
+ private readonly handle;
163
+ private _timer?;
164
+ private readonly _level?;
165
+ private readonly _spellStealPriority?;
166
+ private readonly _learnLevelMinimum?;
167
+ private _bonusIdByBonusType?;
168
+ private readonly _abilityTypeIds?;
169
+ private _behaviors?;
170
+ private getUnitBonus;
171
+ private addOrUpdateOrRemoveUnitBonus;
172
+ constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters>);
173
+ get level(): number;
174
+ get remainingDamageOverDuration(): number;
175
+ set remainingDamageOverDuration(remainingDamageOverDuration: number);
176
+ get damageOverDuration(): number;
177
+ set damageOverDuration(damageOverDuration: number);
178
+ get damagePerInterval(): number;
179
+ set damagePerInterval(damagePerInterval: number);
180
+ get damageInterval(): number;
181
+ set damageInterval(damageInterval: number);
182
+ get remainingHealingOverDuration(): number;
183
+ set remainingHealingOverDuration(remainingHealingOverDuration: number);
184
+ get healingOverDuration(): number;
185
+ set healingOverDuration(healingOverDuration: number);
186
+ get healingPerInterval(): number;
187
+ set healingPerInterval(healingPerInterval: number);
188
+ get healingInterval(): number;
189
+ set healingInterval(healingInterval: number);
190
+ get receivedDamageFactor(): number;
191
+ set receivedDamageFactor(receivedDamageFactor: number);
192
+ get armorIncrease(): number;
193
+ set armorIncrease(armorIncrease: number);
194
+ get stuns(): boolean;
195
+ set stuns(stuns: boolean);
196
+ get ignoresStunImmunity(): boolean;
197
+ set ignoresStunImmunity(ignoresStunImmunity: boolean);
198
+ get disablesAutoAttack(): boolean;
199
+ set disablesAutoAttack(disablesAutoAttack: boolean);
200
+ get providesInvulnerability(): boolean;
201
+ set providesInvulnerability(providesInvulnerability: boolean);
202
+ get maximumAutoAttackCount(): number;
203
+ set maximumAutoAttackCount(maximumAutoAttackCount: number);
204
+ get durationIncreaseOnAutoAttack(): number;
205
+ set durationIncreaseOnAutoAttack(durationIncreaseOnAutoAttack: number);
206
+ get attackSpeedIncreaseFactor(): number;
207
+ set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
208
+ get movementSpeedIncreaseFactor(): number;
209
+ set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
210
+ get duration(): number;
211
+ get remainingDuration(): number;
212
+ set remainingDuration(remainingDuration: number);
213
+ flashEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
214
+ flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
215
+ protected onDestroy(): Destructor;
216
+ static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
217
+ static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
218
+ onDeath(source: Unit | undefined): void;
219
+ onDamageDealt(target: Unit, event: DamageEvent): void;
220
+ }
221
+ export {};