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
package/math/vec2.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ /// <reference types="@typescript-to-lua/language-extensions" />
2
+ /** @noSelfInFile */
3
+ /** Gets the height of the terrain at the position specified by the vector. */
4
+ export declare const getTerrainZ: (x: number, y: number) => number;
5
+ /** Returns the unsigned angle in degrees between from and to. */
6
+ export declare const angleBetweenPoints: (x1: number, y1: number, x2: number, y2: number) => number;
7
+ /** Returns the distance between a and b. */
8
+ export declare const distance: (x1: number, y1: number, x2: number, y2: number) => number;
9
+ /** Moves a point current towards target. */
10
+ export declare const moveTowards: (x1: number, y1: number, x2: number, y2: number, distance: number) => LuaMultiReturn<[
11
+ number,
12
+ number
13
+ ]>;
14
+ /** Gets a polar offset from this vector. Angle should be specified in degrees. */
15
+ export declare const polarOffset: (x: number, y: number, angle: number, distance: number) => LuaMultiReturn<[
16
+ number,
17
+ number
18
+ ]>;
package/math/vec2.lua ADDED
@@ -0,0 +1,42 @@
1
+ local ____exports = {}
2
+ local atan = math.atan
3
+ local cos = math.cos
4
+ local deg = math.deg
5
+ local rad = math.rad
6
+ local sin = math.sin
7
+ local sqrt = math.sqrt
8
+ local getLocationZ = _G.GetLocationZ
9
+ local moveLocation = _G.MoveLocation
10
+ local location = _G.Location(0, 0)
11
+ --- Gets the height of the terrain at the position specified by the vector.
12
+ ____exports.getTerrainZ = function(x, y)
13
+ moveLocation(location, x, y)
14
+ return getLocationZ(location)
15
+ end
16
+ --- Returns the unsigned angle in degrees between from and to.
17
+ ____exports.angleBetweenPoints = function(x1, y1, x2, y2)
18
+ return deg(atan(y2 - y1, x2 - x1))
19
+ end
20
+ --- Returns the distance between a and b.
21
+ ____exports.distance = function(x1, y1, x2, y2)
22
+ local dx = x2 - x1
23
+ local dy = y2 - y1
24
+ return sqrt(dx * dx + dy * dy)
25
+ end
26
+ --- Moves a point current towards target.
27
+ ____exports.moveTowards = function(x1, y1, x2, y2, distance)
28
+ local dx = x2 - x1
29
+ local dy = y2 - y1
30
+ local d = sqrt(dx * dx + dy * dy)
31
+ if d ~= 0 then
32
+ local ratio = distance / d
33
+ return x1 + dx * ratio, y1 + dy * ratio
34
+ end
35
+ return x1 + distance, y1
36
+ end
37
+ --- Gets a polar offset from this vector. Angle should be specified in degrees.
38
+ ____exports.polarOffset = function(x, y, angle, distance)
39
+ angle = rad(angle)
40
+ return x + cos(angle) * distance, y + sin(angle) * distance
41
+ end
42
+ return ____exports
package/math.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ /// <reference types="lua-types/5.3" />
2
+ /// <reference types="lua-types/5.3" />
3
+ /** @noSelfInFile */
4
+ export declare const MINIMUM_POSITIVE_NORMALIZED_FLOAT: number;
5
+ export declare const MINIMUM_POSITIVE_FLOAT: number;
6
+ export declare const MAXIMUM_INTEGER = 2147483647;
7
+ export declare const MINIMUM_INTEGER = -2147483648;
8
+ export declare const POSITIVE_INFINITY: number;
9
+ export declare const NEGATIVE_INFINITY: number;
10
+ export declare const E: number;
11
+ export declare const LN10: number;
12
+ export declare const LN2: number;
13
+ export declare const LOG2E: number;
14
+ export declare const LOG10E: number;
15
+ export declare const PI: number;
16
+ export declare const SQRT1_2: number;
17
+ export declare const SQRT2: number;
18
+ export declare const ceil: typeof math.ceil;
19
+ /** Clamps the value to fit between min and max. */
20
+ export declare const clamp: (value: number, min: number, max: number) => number;
21
+ export declare const abs: typeof math.abs;
22
+ export declare const cos: typeof math.cos;
23
+ export declare const exp: typeof math.exp;
24
+ export declare const floor: typeof math.floor;
25
+ export declare const log: typeof math.log;
26
+ export declare const max: typeof math.max;
27
+ export declare const min: typeof math.min;
28
+ /** Returns the signum function of the argument;
29
+ * zero if the argument is zero,
30
+ * 1.0 if the argument is greater than zero,
31
+ * -1.0 if the argument is less than zero. */
32
+ export declare const signum: (value: number) => number;
33
+ /** Returns the trigonometric sine of an angle (assumed to be in radians). */
34
+ export declare const sin: typeof math.sin;
35
+ /** Returns the positive square root of a value. */
36
+ export declare const sqrt: typeof math.sqrt;
37
+ export declare const nextUp: (value: number) => number;
38
+ export declare const nextDown: (value: number) => number;
39
+ export declare const nextAfter: (start: number, direction: number) => number;
package/math.lua ADDED
@@ -0,0 +1,91 @@
1
+ local ____exports = {}
2
+ local pack = string.pack
3
+ local ____unpack = string.unpack
4
+ local function intBitsToFloat(intBits)
5
+ return (____unpack(
6
+ "<f",
7
+ pack("<i4", intBits)
8
+ ))
9
+ end
10
+ local function floatToIntBits(float)
11
+ return (____unpack(
12
+ "<i4",
13
+ pack("<f", float)
14
+ ))
15
+ end
16
+ ____exports.MINIMUM_POSITIVE_NORMALIZED_FLOAT = intBitsToFloat(8388608)
17
+ ____exports.MINIMUM_POSITIVE_FLOAT = intBitsToFloat(1)
18
+ ____exports.MAXIMUM_INTEGER = 2147483647
19
+ ____exports.MINIMUM_INTEGER = -2147483648
20
+ ____exports.POSITIVE_INFINITY = math.huge
21
+ ____exports.NEGATIVE_INFINITY = -math.huge
22
+ ____exports.E = 2.718281828459045
23
+ ____exports.LN10 = 2.302585092994046
24
+ ____exports.LN2 = 0.6931471805599453
25
+ ____exports.LOG2E = 1.4426950408889634
26
+ ____exports.LOG10E = 0.4342944819032518
27
+ ____exports.PI = math.pi
28
+ ____exports.SQRT1_2 = 0.7071067811865476
29
+ ____exports.SQRT2 = 1.4142135623730951
30
+ ____exports.ceil = math.ceil
31
+ --- Clamps the value to fit between min and max.
32
+ ____exports.clamp = function(value, min, max)
33
+ return value < min and min or (value > max and max or value)
34
+ end
35
+ ____exports.abs = math.abs
36
+ ____exports.cos = math.cos
37
+ ____exports.exp = math.exp
38
+ ____exports.floor = math.floor
39
+ ____exports.log = math.log
40
+ ____exports.max = math.max
41
+ ____exports.min = math.min
42
+ --- Returns the signum function of the argument;
43
+ -- zero if the argument is zero,
44
+ -- 1.0 if the argument is greater than zero,
45
+ -- -1.0 if the argument is less than zero.
46
+ ____exports.signum = function(value)
47
+ return value == 0 and 0 or (value > 0 and 1 or -1)
48
+ end
49
+ --- Returns the trigonometric sine of an angle (assumed to be in radians).
50
+ ____exports.sin = math.sin
51
+ --- Returns the positive square root of a value.
52
+ ____exports.sqrt = math.sqrt
53
+ ____exports.nextUp = function(value)
54
+ value = value + .0
55
+ if value < ____exports.POSITIVE_INFINITY then
56
+ local transducer = floatToIntBits(value)
57
+ return intBitsToFloat(transducer + (transducer >= 0 and 1 or -1))
58
+ else
59
+ return value
60
+ end
61
+ end
62
+ ____exports.nextDown = function(value)
63
+ value = value + .0
64
+ if value ~= value or value == ____exports.NEGATIVE_INFINITY then
65
+ return value
66
+ elseif value == 0 then
67
+ return -____exports.MINIMUM_POSITIVE_FLOAT
68
+ else
69
+ return intBitsToFloat(floatToIntBits(value) + (value > 0 and -1 or 1))
70
+ end
71
+ end
72
+ ____exports.nextAfter = function(start, direction)
73
+ start = start + .0
74
+ direction = direction + .0
75
+ if start > direction then
76
+ if start ~= 0 then
77
+ local transducer = floatToIntBits(start)
78
+ return intBitsToFloat(transducer + (transducer > 0 and -1 or 1))
79
+ else
80
+ return -____exports.MINIMUM_POSITIVE_FLOAT
81
+ end
82
+ elseif start < direction then
83
+ local transducer = floatToIntBits(start)
84
+ return intBitsToFloat(transducer + (transducer >= 0 and 1 or -1))
85
+ elseif start == direction then
86
+ return direction
87
+ else
88
+ return start + direction
89
+ end
90
+ end
91
+ return ____exports
@@ -0,0 +1,11 @@
1
+ /** @noSelfInFile */
2
+ import { Player } from "../core/types/player";
3
+ import { Event } from "../event";
4
+ export declare class Signal {
5
+ private readonly frame;
6
+ private readonly trigger;
7
+ readonly onReceive: Event<[Player]>;
8
+ constructor();
9
+ send(): void;
10
+ destroy(): void;
11
+ }
package/net/signal.lua ADDED
@@ -0,0 +1,56 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__New = ____lualib.__TS__New
4
+ local ____exports = {}
5
+ local ____player = require("core.types.player")
6
+ local Player = ____player.Player
7
+ local ____event = require("event")
8
+ local Event = ____event.Event
9
+ local eventInvoke = Event.invoke
10
+ local condition = Condition
11
+ local createTrigger = CreateTrigger
12
+ local triggerAddCondition = TriggerAddCondition
13
+ local triggerClearConditions = TriggerClearConditions
14
+ local destroyTrigger = DestroyTrigger
15
+ local getTriggerPlayer = GetTriggerPlayer
16
+ local triggerRegisterFrameEvent = BlzTriggerRegisterFrameEvent
17
+ local createFrameByType = BlzCreateFrameByType
18
+ local frameClick = BlzFrameClick
19
+ local destroyFrame = BlzDestroyFrame
20
+ local worldFrame = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
21
+ ____exports.Signal = __TS__Class()
22
+ local Signal = ____exports.Signal
23
+ Signal.name = "Signal"
24
+ function Signal.prototype.____constructor(self)
25
+ local frame = createFrameByType(
26
+ "BUTTON",
27
+ "SignalButton",
28
+ worldFrame,
29
+ "",
30
+ 0
31
+ )
32
+ local trigger = createTrigger()
33
+ triggerRegisterFrameEvent(trigger, frame, FRAMEEVENT_CONTROL_CLICK)
34
+ local onReceive = __TS__New(Event)
35
+ triggerAddCondition(
36
+ trigger,
37
+ condition(function()
38
+ eventInvoke(
39
+ onReceive,
40
+ Player:of(getTriggerPlayer())
41
+ )
42
+ end)
43
+ )
44
+ self.frame = frame
45
+ self.trigger = trigger
46
+ self.onReceive = onReceive
47
+ end
48
+ function Signal.prototype.send(self)
49
+ frameClick(self.frame)
50
+ end
51
+ function Signal.prototype.destroy(self)
52
+ triggerClearConditions(self.trigger)
53
+ destroyTrigger(self.trigger)
54
+ destroyFrame(self.frame)
55
+ end
56
+ return ____exports
@@ -0,0 +1,9 @@
1
+ /** @noSelfInFile */
2
+ import { Event } from "../event";
3
+ import { Player } from "../core/types/player";
4
+ export declare class Socket {
5
+ private readonly id;
6
+ readonly onMessage: Event<[Player, string]>;
7
+ constructor();
8
+ send(data: string): void;
9
+ }
package/net/socket.lua ADDED
@@ -0,0 +1,26 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__New = ____lualib.__TS__New
4
+ local ____exports = {}
5
+ local ____event = require("event")
6
+ local Event = ____event.Event
7
+ local ____network = require("network")
8
+ local send = ____network.send
9
+ local onReceive = ____network.onReceive
10
+ local nextId = 0
11
+ ____exports.Socket = __TS__Class()
12
+ local Socket = ____exports.Socket
13
+ Socket.name = "Socket"
14
+ function Socket.prototype.____constructor(self)
15
+ local ____tostring_0 = tostring
16
+ nextId = nextId + 1
17
+ self.id = ____tostring_0(nextId)
18
+ self.onMessage = __TS__New(Event)
19
+ onReceive[self.id]:addListener(function(sender, data)
20
+ Event.invoke(self.onMessage, sender, data)
21
+ end)
22
+ end
23
+ function Socket.prototype.send(self, data)
24
+ send(self.id, data)
25
+ end
26
+ return ____exports
package/network.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ /** @noSelfInFile */
2
+ import { Event } from "./event";
3
+ import { Player } from "./core/types/player";
4
+ import { Operation, OperationContinue, OperationMonitor } from "./operation";
5
+ export declare const onReceive: {
6
+ [prefix: string]: Event<[Player, string]>;
7
+ } & {
8
+ [x: string]: Event<[Player, string]>;
9
+ };
10
+ export declare function send(id: string, payload: string): void;
11
+ export declare class SyncOperation extends Operation<string> {
12
+ private readonly player;
13
+ private readonly x;
14
+ private readonly p;
15
+ private readonly c;
16
+ private readonly d;
17
+ private readonly l;
18
+ private e?;
19
+ private w?;
20
+ private r?;
21
+ private i;
22
+ private s;
23
+ static get packetsPerRound(): number;
24
+ static set packetsPerRound(value: number);
25
+ constructor(player: Player, data: string);
26
+ protected estimate(): Promise<number>;
27
+ protected work(): string | Promise<OperationContinue | string>;
28
+ protected doCancel(): boolean;
29
+ private static readonly _;
30
+ }
31
+ export declare function synchronize(player: Player, data: string): OperationMonitor<string>;
package/network.lua ADDED
@@ -0,0 +1,194 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
3
+ local __TS__Class = ____lualib.__TS__Class
4
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
5
+ local __TS__Promise = ____lualib.__TS__Promise
6
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
7
+ local ____exports = {}
8
+ local ____event = require("event")
9
+ local TriggerEvent = ____event.TriggerEvent
10
+ local ____exception = require("exception")
11
+ local IllegalArgumentException = ____exception.IllegalArgumentException
12
+ local ____player = require("core.types.player")
13
+ local Player = ____player.Player
14
+ local ____operation = require("operation")
15
+ local Operation = ____operation.Operation
16
+ local OperationContinue = ____operation.OperationContinue
17
+ local ____base64 = require("utility.base64")
18
+ local decode = ____base64.decode
19
+ local encode = ____base64.encode
20
+ local getTriggerPlayer = GetTriggerPlayer
21
+ local getTriggerSyncData = BlzGetTriggerSyncData
22
+ local sendSyncData = BlzSendSyncData
23
+ local triggerRegisterPlayerSyncEvent = BlzTriggerRegisterPlayerSyncEvent
24
+ local concat = table.concat
25
+ local pack = string.pack
26
+ local sub = string.sub
27
+ local ____unpack = string.unpack
28
+ ____exports.onReceive = setmetatable(
29
+ {},
30
+ {__index = function(self, prefix)
31
+ local event = __TS__New(
32
+ TriggerEvent,
33
+ function(trigger)
34
+ for ____, player in ipairs(Player.all) do
35
+ triggerRegisterPlayerSyncEvent(trigger, player.handle, prefix, false)
36
+ end
37
+ end,
38
+ function() return Player:of(getTriggerPlayer()), getTriggerSyncData() end
39
+ )
40
+ self[prefix] = event
41
+ return event
42
+ end}
43
+ )
44
+ function ____exports.send(id, payload)
45
+ if #payload > 255 then
46
+ error(
47
+ __TS__New(
48
+ IllegalArgumentException,
49
+ "payload length must be <= 256, but was " .. tostring(#payload)
50
+ ),
51
+ 0
52
+ )
53
+ end
54
+ sendSyncData(id, payload)
55
+ end
56
+ local packetsPerRound = 4
57
+ local syncOperation
58
+ local preparePromiseExecutor
59
+ local syncPromiseExecutor
60
+ local syncOperationNextId = 1
61
+ local syncOperationById = setmetatable({}, {__mode = "v"})
62
+ ____exports.SyncOperation = __TS__Class()
63
+ local SyncOperation = ____exports.SyncOperation
64
+ SyncOperation.name = "SyncOperation"
65
+ __TS__ClassExtends(SyncOperation, Operation)
66
+ function SyncOperation.prototype.____constructor(self, player, data)
67
+ Operation.prototype.____constructor(self)
68
+ self.player = player
69
+ self.c = {}
70
+ self.i = 1
71
+ self.s = 0
72
+ if not player.isUser or not player.isPlaying then
73
+ error(
74
+ __TS__New(IllegalArgumentException),
75
+ 0
76
+ )
77
+ end
78
+ local ____syncOperationNextId_0 = syncOperationNextId
79
+ syncOperationNextId = ____syncOperationNextId_0 + 1
80
+ local id = ____syncOperationNextId_0
81
+ syncOperationById[id] = self
82
+ self.x = id
83
+ self.p = encode(pack(">i4", id))
84
+ self.d = encode(data)
85
+ self.l = #self.d
86
+ end
87
+ function SyncOperation.prototype.estimate(self)
88
+ if self.player.isLocal then
89
+ sendSyncData(
90
+ "__oh",
91
+ encode(pack(">i4I4", self.x, self.l)) .. sub(self.d, 1, 243)
92
+ )
93
+ self.i = 244
94
+ end
95
+ syncOperation = self
96
+ return __TS__New(__TS__Promise, preparePromiseExecutor)
97
+ end
98
+ function SyncOperation.prototype.work(self)
99
+ if self.progress >= self.maximum then
100
+ return decode(concat(self.c))
101
+ end
102
+ self.s = packetsPerRound
103
+ if self.player.isLocal then
104
+ local i = self.i
105
+ for _ = 1, packetsPerRound do
106
+ sendSyncData(
107
+ "__oc",
108
+ self.p .. sub(self.d, i, i + 246)
109
+ )
110
+ i = i + 247
111
+ end
112
+ self.i = i
113
+ end
114
+ syncOperation = self
115
+ return __TS__New(__TS__Promise, syncPromiseExecutor)
116
+ end
117
+ function SyncOperation.prototype.doCancel(self)
118
+ return false
119
+ end
120
+ __TS__ObjectDefineProperty(
121
+ SyncOperation,
122
+ "packetsPerRound",
123
+ {
124
+ get = function(self)
125
+ return packetsPerRound
126
+ end,
127
+ set = function(self, value)
128
+ if value <= 0 or math.type(value) ~= "integer" then
129
+ error(
130
+ __TS__New(IllegalArgumentException),
131
+ 0
132
+ )
133
+ end
134
+ packetsPerRound = value
135
+ end
136
+ }
137
+ )
138
+ SyncOperation._ = (function()
139
+ preparePromiseExecutor = function(____, resolve, reject)
140
+ syncOperation.e = resolve
141
+ syncOperation.r = reject
142
+ end
143
+ syncPromiseExecutor = function(____, resolve, reject)
144
+ syncOperation.w = resolve
145
+ syncOperation.r = reject
146
+ end
147
+ ____exports.onReceive.__oh:addListener(function(player, data)
148
+ local id, length = ____unpack(
149
+ ">i4I4",
150
+ decode(sub(data, 1, 12))
151
+ )
152
+ local syncOperation = syncOperationById[id]
153
+ if syncOperation then
154
+ local chunk = sub(data, 13)
155
+ local chunks = syncOperation.c
156
+ chunks[#chunks + 1] = chunk
157
+ syncOperation.progress = syncOperation.progress + #chunk
158
+ local resolveEstimate = syncOperation.e
159
+ if resolveEstimate then
160
+ resolveEstimate(nil, length)
161
+ end
162
+ end
163
+ end)
164
+ ____exports.onReceive.__oc:addListener(function(player, data)
165
+ local id = ____unpack(
166
+ ">i4",
167
+ decode(sub(data, 1, 8))
168
+ )
169
+ local syncOperation = syncOperationById[id]
170
+ if syncOperation then
171
+ local chunk = sub(data, 9)
172
+ local chunks = syncOperation.c
173
+ chunks[#chunks + 1] = chunk
174
+ syncOperation.progress = syncOperation.progress + #chunk
175
+ local packetsLeft = syncOperation.s - 1
176
+ syncOperation.s = packetsLeft
177
+ local resolveWork = syncOperation.w
178
+ if resolveWork then
179
+ if syncOperation.progress >= syncOperation.maximum then
180
+ resolveWork(
181
+ nil,
182
+ decode(concat(chunks))
183
+ )
184
+ elseif packetsLeft == 0 then
185
+ resolveWork(nil, OperationContinue)
186
+ end
187
+ end
188
+ end
189
+ end)
190
+ end)()
191
+ function ____exports.synchronize(player, data)
192
+ return __TS__New(____exports.SyncOperation, player, data):execute()
193
+ end
194
+ return ____exports