warscript 0.0.1-dev.f5421e8 → 0.0.1-dev.f594e71

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 (331) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/types/frame.d.ts +1 -0
  4. package/core/types/frame.lua +136 -58
  5. package/core/types/handle.lua +9 -9
  6. package/core/types/item.d.ts +1 -0
  7. package/core/types/item.lua +1 -0
  8. package/core/types/player.d.ts +18 -1
  9. package/core/types/player.lua +76 -26
  10. package/core/types/playerCamera.d.ts +2 -0
  11. package/core/types/playerCamera.lua +123 -5
  12. package/core/types/playerColor.lua +4 -3
  13. package/core/types/sound.d.ts +1 -1
  14. package/core/types/sound.lua +19 -9
  15. package/core/types/tileCell.d.ts +11 -1
  16. package/core/types/tileCell.lua +97 -0
  17. package/core/types/timer.d.ts +3 -1
  18. package/core/types/timer.lua +27 -2
  19. package/core/types/unit.d.ts +4 -0
  20. package/core/types/unit.lua +4 -0
  21. package/decl/native.d.ts +1718 -964
  22. package/destroyable.d.ts +1 -0
  23. package/destroyable.lua +9 -0
  24. package/engine/behavior.d.ts +14 -1
  25. package/engine/behavior.lua +230 -70
  26. package/engine/behaviour/ability/apply-buff.lua +5 -5
  27. package/engine/behaviour/ability/damage.d.ts +9 -3
  28. package/engine/behaviour/ability/damage.lua +40 -49
  29. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  30. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  31. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  32. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  33. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  34. package/engine/behaviour/ability/restore-mana.lua +6 -6
  35. package/engine/behaviour/ability.d.ts +12 -6
  36. package/engine/behaviour/ability.lua +49 -17
  37. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  38. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  39. package/engine/behaviour/unit.d.ts +40 -3
  40. package/engine/behaviour/unit.lua +270 -6
  41. package/engine/buff.d.ts +75 -28
  42. package/engine/buff.lua +433 -196
  43. package/engine/index.d.ts +2 -1
  44. package/engine/internal/ability.d.ts +11 -1
  45. package/engine/internal/ability.lua +100 -41
  46. package/engine/internal/item/ability.lua +63 -11
  47. package/engine/internal/item/fields.d.ts +12 -0
  48. package/engine/internal/item/fields.lua +33 -0
  49. package/engine/internal/item+owner.d.ts +1 -0
  50. package/engine/internal/item+owner.lua +19 -6
  51. package/engine/internal/item.d.ts +28 -16
  52. package/engine/internal/item.lua +241 -82
  53. package/engine/internal/mechanics/cast-ability.lua +6 -3
  54. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  55. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  56. package/engine/internal/misc/frame-coordinates.lua +21 -0
  57. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  58. package/engine/internal/misc/get-terrain-z.lua +11 -0
  59. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  60. package/engine/internal/misc/player-local-handle.lua +5 -0
  61. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  62. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  63. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  64. package/engine/internal/object-data/health-bonus.lua +16 -0
  65. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  66. package/engine/internal/object-data/mana-bonus.lua +16 -0
  67. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  68. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  69. package/engine/internal/unit/ability.d.ts +35 -0
  70. package/engine/internal/unit/ability.lua +113 -12
  71. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  72. package/engine/internal/unit/allowed-targets.lua +9 -1
  73. package/engine/internal/unit/appearance.d.ts +15 -0
  74. package/engine/internal/unit/appearance.lua +85 -0
  75. package/engine/internal/unit/attributes.d.ts +17 -0
  76. package/engine/internal/unit/attributes.lua +46 -0
  77. package/engine/internal/unit/bag.d.ts +18 -0
  78. package/engine/internal/unit/bag.lua +63 -0
  79. package/engine/internal/unit/bonus.d.ts +6 -0
  80. package/engine/internal/unit/bonus.lua +33 -3
  81. package/engine/internal/unit/buff.d.ts +2 -2
  82. package/engine/internal/unit/buff.lua +34 -19
  83. package/engine/internal/unit/equipment.d.ts +36 -0
  84. package/engine/internal/unit/equipment.lua +169 -0
  85. package/engine/internal/unit/fly-height.d.ts +7 -0
  86. package/engine/internal/unit/fly-height.lua +20 -0
  87. package/engine/internal/unit/interrupts.d.ts +12 -0
  88. package/engine/internal/unit/interrupts.lua +28 -0
  89. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +3 -3
  90. package/engine/internal/unit/{item.lua → inventory.lua} +25 -26
  91. package/engine/internal/unit/main-selected.lua +12 -27
  92. package/engine/internal/unit/order.d.ts +20 -0
  93. package/engine/internal/unit/order.lua +136 -0
  94. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  95. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  96. package/engine/internal/unit/range-event.d.ts +12 -0
  97. package/engine/internal/unit/range-event.lua +90 -0
  98. package/engine/internal/unit/scale.d.ts +7 -0
  99. package/engine/internal/unit/scale.lua +20 -0
  100. package/engine/internal/unit+ability.lua +10 -1
  101. package/engine/internal/unit+bonus.lua +3 -3
  102. package/engine/internal/unit+damage.d.ts +11 -11
  103. package/engine/internal/unit+damage.lua +43 -14
  104. package/engine/internal/unit+spellSteal.lua +1 -2
  105. package/engine/internal/unit-missile-data.lua +58 -32
  106. package/engine/internal/unit-missile-launch.lua +52 -14
  107. package/engine/internal/unit.d.ts +39 -27
  108. package/engine/internal/unit.lua +382 -269
  109. package/engine/local-client.d.ts +27 -0
  110. package/engine/local-client.lua +370 -54
  111. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  112. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  113. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  114. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  115. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  116. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  117. package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
  118. package/engine/object-data/auxiliary/equipment-type.lua +2 -0
  119. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  120. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  121. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  122. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  123. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  124. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  125. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  126. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  127. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  128. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  129. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  130. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  131. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  132. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  133. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  134. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  135. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  136. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  137. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  138. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  139. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  140. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  141. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  142. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  143. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  144. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  145. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  146. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  147. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  148. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  149. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  150. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  151. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  152. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  153. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  154. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  155. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  156. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  157. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  158. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  159. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  160. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  161. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  162. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  163. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  164. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  165. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  166. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  167. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  168. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  169. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  170. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  171. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  172. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  173. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  174. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  175. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  176. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  177. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  178. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  179. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  180. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  181. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  182. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  183. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  184. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  185. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  186. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  187. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  188. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  189. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  190. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  191. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  192. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  193. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  194. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  195. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  196. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  197. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  198. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  199. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  200. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  201. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  202. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  203. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  204. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  205. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  206. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  207. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  208. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  209. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  210. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  211. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  212. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  213. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  214. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  215. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  216. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  217. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  218. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  219. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  220. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  221. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  222. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  223. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  224. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  225. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  226. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  227. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  228. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  229. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  230. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  231. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  232. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  234. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  235. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  236. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  237. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  238. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  239. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  240. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  241. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  242. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  243. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  244. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  245. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  246. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  247. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  248. package/engine/object-data/entry/ability-type.d.ts +12 -3
  249. package/engine/object-data/entry/ability-type.lua +148 -7
  250. package/engine/object-data/entry/buff-type/applicable.lua +113 -104
  251. package/engine/object-data/entry/buff-type.d.ts +10 -12
  252. package/engine/object-data/entry/buff-type.lua +37 -27
  253. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  254. package/engine/object-data/entry/destructible-type.lua +181 -0
  255. package/engine/object-data/entry/item-type.d.ts +12 -3
  256. package/engine/object-data/entry/item-type.lua +52 -0
  257. package/engine/object-data/entry/lightning-type.d.ts +2 -2
  258. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  259. package/engine/object-data/entry/unit-type.d.ts +64 -6
  260. package/engine/object-data/entry/unit-type.lua +531 -85
  261. package/engine/object-data/entry/upgrade.d.ts +2 -2
  262. package/engine/object-data/entry.d.ts +4 -1
  263. package/engine/object-field/ability.d.ts +4 -4
  264. package/engine/object-field/ability.lua +9 -8
  265. package/engine/object-field/item.d.ts +22 -0
  266. package/engine/object-field/item.lua +118 -0
  267. package/engine/object-field/unit.d.ts +72 -3
  268. package/engine/object-field/unit.lua +268 -7
  269. package/engine/object-field.d.ts +26 -7
  270. package/engine/object-field.lua +360 -119
  271. package/engine/random.d.ts +10 -0
  272. package/engine/random.lua +21 -0
  273. package/engine/standard/entries/ability-type.d.ts +3102 -7
  274. package/engine/standard/entries/ability-type.lua +0 -6
  275. package/engine/standard/entries/buff-type.d.ts +3 -0
  276. package/engine/standard/entries/buff-type.lua +3 -0
  277. package/engine/standard/entries/item-type.d.ts +1299 -0
  278. package/engine/standard/entries/item-type.lua +2 -0
  279. package/engine/standard/entries/unit-type.d.ts +5 -0
  280. package/engine/standard/entries/unit-type.lua +5 -0
  281. package/engine/standard/fields/ability.d.ts +2 -2
  282. package/engine/standard/fields/ability.lua +2 -2
  283. package/engine/standard/fields/item.d.ts +4 -0
  284. package/engine/standard/fields/item.lua +6 -0
  285. package/engine/standard/fields/unit.d.ts +12 -0
  286. package/engine/standard/fields/unit.lua +20 -0
  287. package/engine/synchronization.d.ts +11 -0
  288. package/engine/synchronization.lua +77 -0
  289. package/engine/text-tag.d.ts +36 -2
  290. package/engine/text-tag.lua +250 -10
  291. package/engine/unit.d.ts +10 -1
  292. package/engine/unit.lua +10 -1
  293. package/event.d.ts +1 -1
  294. package/lualib_bundle.lua +1 -1
  295. package/math.d.ts +2 -0
  296. package/math.lua +14 -0
  297. package/net/socket.lua +1 -1
  298. package/network.lua +25 -1
  299. package/objutil/buff.lua +11 -10
  300. package/objutil/object.lua +1 -1
  301. package/operation.d.ts +8 -1
  302. package/operation.lua +38 -18
  303. package/package.json +3 -23
  304. package/patch-lua.lua +15 -0
  305. package/patch-lualib.lua +1 -1
  306. package/utility/arrays.d.ts +2 -0
  307. package/utility/arrays.lua +11 -0
  308. package/utility/callback-array.d.ts +17 -0
  309. package/utility/callback-array.lua +61 -0
  310. package/utility/functions.d.ts +8 -0
  311. package/utility/functions.lua +13 -0
  312. package/utility/linked-map.d.ts +35 -0
  313. package/utility/linked-map.lua +107 -0
  314. package/utility/linked-set.d.ts +5 -1
  315. package/utility/linked-set.lua +49 -1
  316. package/utility/lua-maps.d.ts +15 -2
  317. package/utility/lua-maps.lua +53 -2
  318. package/utility/lua-sets.d.ts +2 -0
  319. package/utility/lua-sets.lua +7 -0
  320. package/utility/random.d.ts +102 -0
  321. package/utility/random.lua +273 -0
  322. package/utility/records.lua +20 -1
  323. package/utility/types.d.ts +3 -0
  324. package/utility/unordered-map.d.ts +27 -0
  325. package/utility/unordered-map.lua +99 -0
  326. package/core/types/order.d.ts +0 -25
  327. package/core/types/order.lua +0 -55
  328. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  329. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  330. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  331. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,273 @@
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 ____exception = require("exception")
6
+ local IllegalArgumentException = ____exception.IllegalArgumentException
7
+ local ____math = require("math")
8
+ local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
9
+ local PI = ____math.PI
10
+ local cos = ____math.cos
11
+ local sin = ____math.sin
12
+ local sqrt = ____math.sqrt
13
+ local clock = os.clock
14
+ local time = os.time
15
+ local byte = string.byte
16
+ local pack = string.pack
17
+ local ____unpack = string.unpack
18
+ local select = _G.select
19
+ local toString = _G.tostring
20
+ local globals = _G
21
+ local UINT32_MASK = 4294967295
22
+ local POW_2_32 = 4294967296
23
+ --- 2^26, used to join two draws into a 53-bit mantissa.
24
+ local POW_2_26 = 67108864
25
+ --- 2^53, the amount of representable values of a 53-bit mantissa.
26
+ local POW_2_53 = 9007199254740992
27
+ local GOLDEN_RATIO_32 = 2654435769
28
+ local FNV_PRIME_32 = 16777619
29
+ --- The SplitMix32 finalizer: avalanches a 32-bit value.
30
+ local function mix(value)
31
+ local z = value & UINT32_MASK
32
+ z = (z ~ z >> 16) * 569420461 & UINT32_MASK
33
+ z = (z ~ z >> 15) * 1935289751 & UINT32_MASK
34
+ return (z ~ z >> 15) & UINT32_MASK
35
+ end
36
+ --- Folds the bytes of `value` into `hash` (FNV-1a).
37
+ local function hashString(hash, value)
38
+ for i = 1, #value do
39
+ hash = (hash ~ byte(value, i)) * FNV_PRIME_32 & UINT32_MASK
40
+ end
41
+ return hash
42
+ end
43
+ --- Folds the exact bit pattern of `value` into `hash`, without assuming it is an integer.
44
+ local function hashNumber(hash, value)
45
+ local low, high = ____unpack(
46
+ "<i4i4",
47
+ pack("<d", value)
48
+ )
49
+ return mix(mix(hash ~ low & UINT32_MASK) ~ high & UINT32_MASK)
50
+ end
51
+ local entropyCounter = 0
52
+ --- Gathers 32 bits of client-local entropy.
53
+ --
54
+ -- Every source is local by nature: the wall clock and the process CPU time drift apart between
55
+ -- machines, and the heap addresses of freshly allocated tables and of loaded code differ between
56
+ -- processes. The CPU time is read once more at the end, so that the time the gathering itself took
57
+ -- contributes as well.
58
+ local function collectEntropy()
59
+ entropyCounter = entropyCounter + 1
60
+ local entropy = mix(GOLDEN_RATIO_32 ~ entropyCounter)
61
+ entropy = mix(entropy ~ time() & UINT32_MASK)
62
+ entropy = hashNumber(
63
+ entropy,
64
+ clock()
65
+ )
66
+ entropy = mix(hashString(
67
+ entropy,
68
+ toString({})
69
+ ))
70
+ entropy = mix(hashString(
71
+ entropy,
72
+ toString({})
73
+ ))
74
+ entropy = mix(hashString(
75
+ entropy,
76
+ toString(globals)
77
+ ))
78
+ entropy = mix(hashString(
79
+ entropy,
80
+ toString(mix)
81
+ ))
82
+ return hashNumber(
83
+ entropy,
84
+ clock()
85
+ )
86
+ end
87
+ --- A client-local pseudorandom generator that is safe to advance inside a local block.
88
+ --
89
+ -- Instances are independent of each other and of the game's synchronous randomness.
90
+ ____exports.AsyncRandom = __TS__Class()
91
+ local AsyncRandom = ____exports.AsyncRandom
92
+ AsyncRandom.name = "AsyncRandom"
93
+ function AsyncRandom.prototype.____constructor(self, seed)
94
+ self.a = 0
95
+ self.b = 0
96
+ self.c = 0
97
+ self.d = 0
98
+ self:setSeed(seed or collectEntropy())
99
+ end
100
+ function AsyncRandom.prototype.setSeed(self, seed)
101
+ local z = hashNumber(GOLDEN_RATIO_32, seed)
102
+ z = z + GOLDEN_RATIO_32 & UINT32_MASK
103
+ local a = mix(z)
104
+ z = z + GOLDEN_RATIO_32 & UINT32_MASK
105
+ local b = mix(z)
106
+ z = z + GOLDEN_RATIO_32 & UINT32_MASK
107
+ local c = mix(z)
108
+ z = z + GOLDEN_RATIO_32 & UINT32_MASK
109
+ local d = mix(z)
110
+ self.a = a
111
+ self.b = b
112
+ self.c = c
113
+ self.d = a | b | c | d ~= 0 and d or GOLDEN_RATIO_32
114
+ end
115
+ function AsyncRandom.prototype.addEntropy(self, value)
116
+ local entropy = collectEntropy()
117
+ if type(value) == "number" then
118
+ entropy = hashNumber(entropy, value)
119
+ elseif value ~= nil then
120
+ entropy = hashString(entropy, value)
121
+ end
122
+ local a = self.a ~ mix(entropy)
123
+ local b = self.b ~ mix(a)
124
+ local c = self.c ~ mix(b)
125
+ local d = self.d ~ mix(c)
126
+ self.a = a
127
+ self.b = b
128
+ self.c = c
129
+ self.d = a | b | c | d ~= 0 and d or GOLDEN_RATIO_32
130
+ self:next()
131
+ end
132
+ function AsyncRandom.prototype.next(self)
133
+ local a = self.a
134
+ local b = self.b
135
+ local result = b * 5 & UINT32_MASK
136
+ result = (result << 7 | result >> 25) & UINT32_MASK
137
+ result = result * 9 & UINT32_MASK
138
+ local t = b << 9 & UINT32_MASK
139
+ local c = self.c ~ a
140
+ local d = self.d ~ b
141
+ self.a = a ~ d
142
+ self.b = b ~ c
143
+ self.c = c ~ t
144
+ self.d = (d << 11 | d >> 21) & UINT32_MASK
145
+ return result
146
+ end
147
+ function AsyncRandom.prototype.nextBounded(self, bound)
148
+ if bound <= 1 then
149
+ return 0
150
+ end
151
+ local limit = POW_2_32 - POW_2_32 % bound
152
+ local value = self:next()
153
+ while value >= limit do
154
+ value = self:next()
155
+ end
156
+ return value % bound
157
+ end
158
+ function AsyncRandom.prototype.nextBits(self, bitCount)
159
+ return self:next() >> 32 - bitCount
160
+ end
161
+ function AsyncRandom.prototype.nextInteger(self, m, n)
162
+ local lowerBound = n ~= nil and m or 0
163
+ local upperBound = n ~= nil and n or (m or MAXIMUM_INTEGER)
164
+ if upperBound < lowerBound then
165
+ error(
166
+ __TS__New(
167
+ IllegalArgumentException,
168
+ ((("Upper bound (" .. tostring(upperBound)) .. ") is less than lower bound (") .. tostring(lowerBound)) .. ")."
169
+ ),
170
+ 0
171
+ )
172
+ end
173
+ return lowerBound + self:nextBounded(upperBound - lowerBound + 1)
174
+ end
175
+ function AsyncRandom.prototype.nextFloat(self, m, n)
176
+ local high = self:next() >> 5
177
+ local low = self:next() >> 6
178
+ local value = (high * POW_2_26 + low) / POW_2_53
179
+ return n ~= nil and m + value * (n - m) or value * (m or MAXIMUM_INTEGER)
180
+ end
181
+ function AsyncRandom.prototype.nextBoolean(self, probability)
182
+ local ____temp_0
183
+ if probability == nil then
184
+ ____temp_0 = self:next() >> 31 ~= 0
185
+ else
186
+ ____temp_0 = self:nextFloat() < probability
187
+ end
188
+ return ____temp_0
189
+ end
190
+ function AsyncRandom.prototype.nextAngle(self)
191
+ return self:nextFloat() * 360
192
+ end
193
+ function AsyncRandom.prototype.nextXY(self, centerX, centerY, range)
194
+ local r = range * sqrt(self:nextFloat())
195
+ local t = self:nextFloat() * 2 * PI
196
+ return centerX + r * cos(t), centerY + r * sin(t)
197
+ end
198
+ function AsyncRandom.prototype.nextElement(self, array)
199
+ local length = #array
200
+ local ____temp_1
201
+ if length ~= 0 then
202
+ ____temp_1 = array[self:nextBounded(length) + 1]
203
+ else
204
+ ____temp_1 = nil
205
+ end
206
+ return ____temp_1
207
+ end
208
+ function AsyncRandom.prototype.nextOf(self, ...)
209
+ local count = select("#", ...)
210
+ local ____temp_2
211
+ if count ~= 0 then
212
+ ____temp_2 = (select(
213
+ self:nextBounded(count) + 1,
214
+ ...
215
+ ))
216
+ else
217
+ ____temp_2 = nil
218
+ end
219
+ return ____temp_2
220
+ end
221
+ function AsyncRandom.prototype.shuffle(self, array)
222
+ for i = #array - 1, 1, -1 do
223
+ local j = self:nextBounded(i + 1)
224
+ local value = array[i + 1]
225
+ array[i + 1] = array[j + 1]
226
+ array[j + 1] = value
227
+ end
228
+ end
229
+ local defaultAsyncRandom
230
+ local function getDefaultAsyncRandom()
231
+ defaultAsyncRandom = defaultAsyncRandom or __TS__New(____exports.AsyncRandom)
232
+ return defaultAsyncRandom
233
+ end
234
+ --- Folds freshly gathered client-local entropy, optionally together with the given `value`,
235
+ -- into the state of the generator backing the `asyncRandom*` functions.
236
+ ____exports.addAsyncRandomEntropy = function(value)
237
+ getDefaultAsyncRandom():addEntropy(value)
238
+ end
239
+ --- Returns the given amount (`0` to `32`) of random bits as a non-negative integer.
240
+ ____exports.asyncRandomBits = function(bitCount)
241
+ return getDefaultAsyncRandom():nextBits(bitCount)
242
+ end
243
+ --- Returns a uniformly distributed integer, both bounds being inclusive:
244
+ -- in `[0, upperBound]` when called with a single bound, in `[lowerBound, upperBound]` otherwise.
245
+ ____exports.asyncRandomInteger = function(m, n) return n ~= nil and getDefaultAsyncRandom():nextInteger(m, n) or getDefaultAsyncRandom():nextInteger(m) end
246
+ --- Returns a uniformly distributed float with 53 bits of precision, the upper bound being exclusive:
247
+ -- in `[0, upperBound)` when called with a single bound, in `[lowerBound, upperBound)` otherwise.
248
+ ____exports.asyncRandomFloat = function(m, n) return n ~= nil and getDefaultAsyncRandom():nextFloat(m, n) or getDefaultAsyncRandom():nextFloat(m) end
249
+ --- Returns `true` with the given `probability`, or with a probability of one half by default.
250
+ ____exports.asyncRandomBoolean = function(probability)
251
+ return getDefaultAsyncRandom():nextBoolean(probability)
252
+ end
253
+ --- Returns a uniformly distributed angle in degrees, in `[0, 360)`.
254
+ ____exports.asyncRandomAngle = function()
255
+ return getDefaultAsyncRandom():nextAngle()
256
+ end
257
+ --- Returns a uniformly distributed point within `range` of the given center.
258
+ ____exports.asyncRandomXY = function(centerX, centerY, range)
259
+ return getDefaultAsyncRandom():nextXY(centerX, centerY, range)
260
+ end
261
+ --- Returns a uniformly distributed element of the given `array`.
262
+ ____exports.asyncRandomElement = function(array)
263
+ return getDefaultAsyncRandom():nextElement(array)
264
+ end
265
+ --- Returns a uniformly distributed one of the given `elements`.
266
+ ____exports.asyncRandom = function(...)
267
+ return getDefaultAsyncRandom():nextOf(...)
268
+ end
269
+ --- Shuffles the given `array` in place, each permutation being equally likely.
270
+ ____exports.asyncShuffle = function(array)
271
+ getDefaultAsyncRandom():shuffle(array)
272
+ end
273
+ return ____exports
@@ -1,9 +1,28 @@
1
1
  local ____exports = {}
2
+ local ____pairs = _G.pairs
3
+ local tableSort = table.sort
2
4
  ____exports.invertRecord = function(record)
3
5
  local invertRecord = {}
4
- for key, value in pairs(record) do
6
+ for key, value in ____pairs(record) do
5
7
  invertRecord[value] = key
6
8
  end
7
9
  return invertRecord
8
10
  end
11
+ local sortedKeysInternal = {}
12
+ local lastSortedKeysLength = 0
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.sortedKeysUnnested = function(record)
16
+ local length = 0
17
+ for key in ____pairs(record) do
18
+ length = length + 1
19
+ sortedKeysInternal[length] = key
20
+ end
21
+ for i = length + 1, lastSortedKeysLength do
22
+ sortedKeysInternal[i] = nil
23
+ end
24
+ lastSortedKeysLength = length
25
+ tableSort(sortedKeysInternal)
26
+ return sortedKeysInternal
27
+ end
9
28
  return ____exports
@@ -37,4 +37,7 @@ export type Flatten<T extends readonly any[], A extends readonly any[] = []> = T
37
37
  export type Prohibit<T, K extends keyof any> = T & {
38
38
  [P in K]?: never;
39
39
  };
40
+ type TupleSplit<T, N extends number, O extends readonly any[] = readonly []> = O["length"] extends N ? [O, T] : T extends readonly [infer F, ...infer R] ? TupleSplit<readonly [...R], N, readonly [...O, F]> : [O, T];
41
+ export type TakeFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[0];
42
+ export type SkipFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[1];
40
43
  export {};
@@ -0,0 +1,27 @@
1
+ /** @noSelfInFile */
2
+ type OneSidedTypeGuard = {
3
+ readonly __oneSidedTypeGuard: unique symbol;
4
+ };
5
+ export interface ReadonlyUnorderedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
6
+ get(key: K): V | undefined;
7
+ contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
8
+ readonly size: number;
9
+ }
10
+ export interface UnorderedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
11
+ readonly __unorderedMap: unique symbol;
12
+ }
13
+ export declare class UnorderedMap<K extends AnyNotNil, V> implements ReadonlyUnorderedMap<K, V> {
14
+ private readonly v;
15
+ private s;
16
+ get(key: K): V | undefined;
17
+ getOrPut(key: K, defaultValue: (this: void) => V): V;
18
+ put(key: K, value: V): void;
19
+ remove(key: K): boolean;
20
+ contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
21
+ get size(): number;
22
+ protected __len(): number;
23
+ protected __pairs(this: UnorderedMap<K, V>): ReturnType<typeof pairs>;
24
+ }
25
+ export declare const emptyUnorderedMap: <K extends AnyNotNil, V>() => ReadonlyUnorderedMap<K, V>;
26
+ export declare const mutableUnorderedMap: <K extends AnyNotNil, V>() => UnorderedMap<K, V>;
27
+ export {};
@@ -0,0 +1,99 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
4
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
5
+ local __TS__New = ____lualib.__TS__New
6
+ local ____exports = {}
7
+ local ____exception = require("exception")
8
+ local UnsupportedOperationException = ____exception.UnsupportedOperationException
9
+ ____exports.UnorderedMap = __TS__Class()
10
+ local UnorderedMap = ____exports.UnorderedMap
11
+ UnorderedMap.name = "UnorderedMap"
12
+ function UnorderedMap.prototype.____constructor(self)
13
+ self.v = {}
14
+ self.s = 0
15
+ end
16
+ function UnorderedMap.prototype.get(self, key)
17
+ return self.v[key]
18
+ end
19
+ function UnorderedMap.prototype.getOrPut(self, key, defaultValue)
20
+ local value = self.v[key]
21
+ if value ~= nil then
22
+ return value
23
+ end
24
+ value = defaultValue()
25
+ if value ~= nil then
26
+ self.v[key] = value
27
+ self.s = self.s + 1
28
+ end
29
+ return value
30
+ end
31
+ function UnorderedMap.prototype.put(self, key, value)
32
+ local has = self.v[key] ~= nil
33
+ self.v[key] = value
34
+ if value ~= nil and not has then
35
+ self.s = self.s + 1
36
+ elseif value == nil and has then
37
+ self.s = self.s - 1
38
+ end
39
+ end
40
+ function UnorderedMap.prototype.remove(self, key)
41
+ if self.v[key] ~= nil then
42
+ self.v[key] = nil
43
+ self.s = self.s - 1
44
+ return true
45
+ end
46
+ return false
47
+ end
48
+ function UnorderedMap.prototype.contains(self, key)
49
+ return self.v[key] ~= nil
50
+ end
51
+ function UnorderedMap.prototype.__len(self)
52
+ return self.s
53
+ end
54
+ function UnorderedMap.prototype.__pairs(self)
55
+ return pairs(self.v)
56
+ end
57
+ __TS__SetDescriptor(
58
+ UnorderedMap.prototype,
59
+ "size",
60
+ {get = function(self)
61
+ return self.s
62
+ end},
63
+ true
64
+ )
65
+ local EmptyUnorderedMap = __TS__Class()
66
+ EmptyUnorderedMap.name = "EmptyUnorderedMap"
67
+ __TS__ClassExtends(EmptyUnorderedMap, ____exports.UnorderedMap)
68
+ function EmptyUnorderedMap.prototype.getOrPut(self)
69
+ error(
70
+ __TS__New(UnsupportedOperationException),
71
+ 0
72
+ )
73
+ end
74
+ function EmptyUnorderedMap.prototype.put(self)
75
+ error(
76
+ __TS__New(UnsupportedOperationException),
77
+ 0
78
+ )
79
+ end
80
+ function EmptyUnorderedMap.prototype.remove(self)
81
+ error(
82
+ __TS__New(UnsupportedOperationException),
83
+ 0
84
+ )
85
+ end
86
+ function EmptyUnorderedMap.prototype.__len(self)
87
+ return 0
88
+ end
89
+ function EmptyUnorderedMap.prototype.__pairs(self)
90
+ return pairs(self.v)
91
+ end
92
+ local EMPTY_UNORDERED_MAP = __TS__New(EmptyUnorderedMap)
93
+ ____exports.emptyUnorderedMap = function()
94
+ return EMPTY_UNORDERED_MAP
95
+ end
96
+ ____exports.mutableUnorderedMap = function()
97
+ return __TS__New(____exports.UnorderedMap)
98
+ end
99
+ return ____exports
@@ -1,25 +0,0 @@
1
- /** @noSelfInFile */
2
- import { Unit } from "./unit";
3
- import { Item } from "./item";
4
- import { Destructable } from "./destructable";
5
- export type Order = {
6
- id: number;
7
- startX: number;
8
- startY: number;
9
- } & ({
10
- type: "immediate";
11
- } | {
12
- type: "point";
13
- targetX: number;
14
- targetY: number;
15
- } | {
16
- type: "target";
17
- target: Unit | Item | Destructable;
18
- });
19
- declare module "../../engine/internal/unit" {
20
- interface Unit {
21
- readonly currentOrder: Order;
22
- readonly lastOrder: Order;
23
- issueOrder(order: Order): void;
24
- }
25
- }
@@ -1,55 +0,0 @@
1
- local ____lualib = require("lualib_bundle")
2
- local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
- local ____exports = {}
4
- local ____unit = require("core.types.unit")
5
- local Unit = ____unit.Unit
6
- local getUnitCurrentOrder = GetUnitCurrentOrder
7
- local orders = setmetatable({}, {__mode = "k"})
8
- Unit.onImmediateOrder:addListener(function(unit, orderId)
9
- orders[unit] = {id = orderId, startX = unit.x, startY = unit.y, type = "immediate"}
10
- end)
11
- Unit.onPointOrder:addListener(function(unit, orderId, x, y)
12
- orders[unit] = {
13
- id = orderId,
14
- startX = unit.x,
15
- startY = unit.y,
16
- type = "point",
17
- targetX = x,
18
- targetY = y
19
- }
20
- end)
21
- Unit.onTargetOrder:addListener(function(unit, orderId, target)
22
- orders[unit] = {
23
- id = orderId,
24
- startX = unit.x,
25
- startY = unit.y,
26
- type = "target",
27
- target = target
28
- }
29
- end)
30
- __TS__ObjectDefineProperty(
31
- Unit.prototype,
32
- "currentOrder",
33
- {get = function(self)
34
- local currentOrderId = getUnitCurrentOrder(self.handle)
35
- local lastOrder = orders[self]
36
- return lastOrder and (lastOrder.id == currentOrderId or currentOrderId == orderId("patrolAI") and lastOrder.id == orderId("patrol")) and lastOrder or ({id = 0, type = "immediate"})
37
- end}
38
- )
39
- __TS__ObjectDefineProperty(
40
- Unit.prototype,
41
- "lastOrder",
42
- {get = function(self)
43
- return orders[self] or ({id = 0, type = "immediate"})
44
- end}
45
- )
46
- Unit.prototype.issueOrder = function(self, order)
47
- if order.type == "immediate" then
48
- IssueImmediateOrderById(self.handle, order.id)
49
- elseif order.type == "point" then
50
- IssuePointOrderById(self.handle, order.id, order.targetX, order.targetY)
51
- else
52
- IssueTargetOrderById(self.handle, order.id, order.target.handle)
53
- end
54
- end
55
- return ____exports