warscript 0.0.1-dev.8895ff6 → 0.0.1-dev.89bc33b

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 (304) hide show
  1. package/core/dummy.lua +4 -2
  2. package/core/types/effect.d.ts +11 -1
  3. package/core/types/effect.lua +43 -77
  4. package/core/types/frame.d.ts +16 -2
  5. package/core/types/frame.lua +128 -67
  6. package/core/types/handle.lua +9 -9
  7. package/core/types/item.d.ts +1 -0
  8. package/core/types/item.lua +1 -0
  9. package/core/types/player.d.ts +2 -1
  10. package/core/types/player.lua +18 -13
  11. package/core/types/playerColor.lua +4 -3
  12. package/core/types/sound.d.ts +1 -1
  13. package/core/types/sound.lua +14 -9
  14. package/core/types/tileCell.d.ts +7 -2
  15. package/core/types/tileCell.lua +11 -0
  16. package/core/types/unit.d.ts +5 -0
  17. package/core/types/unit.lua +5 -0
  18. package/core/util.d.ts +3 -1
  19. package/core/util.lua +109 -3
  20. package/decl/native.d.ts +705 -7
  21. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  22. package/engine/ability-type-extended-tooltip.lua +44 -0
  23. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  24. package/engine/behaviour/ability/damage.d.ts +4 -0
  25. package/engine/behaviour/ability/damage.lua +19 -15
  26. package/engine/behaviour/ability/emulate-impact.lua +5 -4
  27. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  28. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  29. package/engine/behaviour/ability.d.ts +11 -5
  30. package/engine/behaviour/ability.lua +54 -0
  31. package/engine/behaviour/unit.d.ts +1 -0
  32. package/engine/behaviour/unit.lua +1 -0
  33. package/engine/buff.d.ts +61 -27
  34. package/engine/buff.lua +304 -133
  35. package/engine/index.d.ts +2 -1
  36. package/engine/internal/ability.d.ts +7 -0
  37. package/engine/internal/ability.lua +65 -36
  38. package/engine/internal/item/fields.d.ts +12 -0
  39. package/engine/internal/item/fields.lua +33 -0
  40. package/engine/internal/item/owner-cache.d.ts +5 -0
  41. package/engine/internal/item/owner-cache.lua +4 -0
  42. package/engine/internal/item+owner.d.ts +2 -0
  43. package/engine/internal/item+owner.lua +27 -4
  44. package/engine/internal/item.d.ts +20 -5
  45. package/engine/internal/item.lua +146 -57
  46. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  47. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  48. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  49. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  50. package/engine/internal/object-data/health-bonus.lua +16 -0
  51. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  52. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  53. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  54. package/engine/internal/object-data/mana-bonus.lua +16 -0
  55. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  56. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  57. package/engine/internal/unit/appearance.d.ts +15 -0
  58. package/engine/internal/unit/appearance.lua +85 -0
  59. package/engine/internal/unit/bonus.d.ts +12 -0
  60. package/engine/internal/unit/bonus.lua +92 -8
  61. package/engine/internal/unit/buff.d.ts +2 -2
  62. package/engine/internal/unit/buff.lua +34 -19
  63. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  64. package/engine/internal/unit/equipment-inventory.lua +233 -0
  65. package/engine/internal/unit/expiration-timer.lua +1 -1
  66. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  67. package/engine/internal/unit/extended-inventory.lua +99 -0
  68. package/engine/internal/unit/ignore-events-items.lua +10 -1
  69. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  70. package/engine/internal/unit/inventory.lua +87 -0
  71. package/engine/internal/unit/item-container.d.ts +25 -0
  72. package/engine/internal/unit/item-container.lua +11 -0
  73. package/engine/internal/unit/item-order-events.d.ts +17 -0
  74. package/engine/internal/unit/item-order-events.lua +67 -0
  75. package/engine/internal/unit/item-slot.d.ts +27 -0
  76. package/engine/internal/unit/item-slot.lua +92 -0
  77. package/engine/internal/unit/order.d.ts +3 -3
  78. package/engine/internal/unit/order.lua +10 -10
  79. package/engine/internal/unit/range-event.d.ts +12 -0
  80. package/engine/internal/unit/range-event.lua +90 -0
  81. package/engine/internal/unit+ability.d.ts +2 -1
  82. package/engine/internal/unit+ability.lua +63 -2
  83. package/engine/internal/unit+bonus.lua +3 -3
  84. package/engine/internal/unit+damage.d.ts +9 -0
  85. package/engine/internal/unit+damage.lua +33 -0
  86. package/engine/internal/unit+rally.lua +9 -31
  87. package/engine/internal/unit-missile-data.lua +58 -32
  88. package/engine/internal/unit-missile-launch.lua +13 -13
  89. package/engine/internal/unit.d.ts +3 -11
  90. package/engine/internal/unit.lua +113 -152
  91. package/engine/local-client.d.ts +26 -0
  92. package/engine/local-client.lua +294 -54
  93. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  94. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  95. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  96. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  97. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  98. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  99. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  100. package/engine/object-data/auxiliary/item-class.lua +2 -0
  101. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  102. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  103. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  104. package/engine/object-data/auxiliary/order-type.lua +2 -0
  105. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  106. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  107. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  108. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  109. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  110. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  111. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  112. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  113. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  114. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  115. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  116. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  117. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  118. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  119. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  120. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  121. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  122. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  123. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  124. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  125. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  126. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  127. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  128. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  129. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  130. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  131. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  132. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  133. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  134. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  135. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  136. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  137. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  138. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  139. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  140. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  141. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  142. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  143. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  144. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  145. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  146. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  147. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  148. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  149. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  150. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  151. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  152. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  153. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  154. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  155. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  156. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  157. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  158. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  159. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  160. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  161. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  162. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  163. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  164. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  165. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  166. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  167. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  168. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  169. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  170. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  171. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  172. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  173. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  174. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  175. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  176. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  177. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  178. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  179. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  180. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  181. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  182. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  183. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  184. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  185. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  186. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  187. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  188. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  189. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  190. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  191. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  192. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  193. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  194. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  195. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  196. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  197. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  198. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  199. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  200. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  201. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  202. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  203. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  204. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  205. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  206. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  207. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  208. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  209. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  210. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  211. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  212. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  213. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  214. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  215. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  216. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  217. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  218. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  219. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  220. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  221. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  222. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  223. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  224. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  225. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  226. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  227. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  228. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  229. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  230. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  231. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  232. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  233. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  234. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  235. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  236. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  237. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  238. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  239. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  240. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  241. package/engine/object-data/entry/ability-type.d.ts +25 -6
  242. package/engine/object-data/entry/ability-type.lua +244 -8
  243. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  244. package/engine/object-data/entry/buff-type.d.ts +6 -2
  245. package/engine/object-data/entry/buff-type.lua +26 -0
  246. package/engine/object-data/entry/destructible-type.d.ts +6 -2
  247. package/engine/object-data/entry/destructible-type.lua +26 -0
  248. package/engine/object-data/entry/item-type.d.ts +18 -3
  249. package/engine/object-data/entry/item-type.lua +84 -0
  250. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  251. package/engine/object-data/entry/lightning-type.lua +1 -1
  252. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  253. package/engine/object-data/entry/unit-type.d.ts +47 -2
  254. package/engine/object-data/entry/unit-type.lua +383 -49
  255. package/engine/object-data/entry/upgrade.d.ts +2 -2
  256. package/engine/object-data/entry.d.ts +6 -1
  257. package/engine/object-data/entry.lua +8 -0
  258. package/engine/object-field/ability.lua +2 -2
  259. package/engine/object-field/item.d.ts +22 -0
  260. package/engine/object-field/item.lua +118 -0
  261. package/engine/object-field.d.ts +1 -1
  262. package/engine/object-field.lua +9 -7
  263. package/engine/random.d.ts +1 -0
  264. package/engine/random.lua +8 -0
  265. package/engine/standard/entries/ability-type.d.ts +3102 -7
  266. package/engine/standard/entries/ability-type.lua +0 -6
  267. package/engine/standard/entries/buff-type.d.ts +45 -0
  268. package/engine/standard/entries/buff-type.lua +43 -0
  269. package/engine/standard/entries/item-type.d.ts +1299 -0
  270. package/engine/standard/entries/item-type.lua +2 -0
  271. package/engine/standard/entries/lightning-type.d.ts +42 -15
  272. package/engine/standard/entries/lightning-type.lua +0 -14
  273. package/engine/standard/entries/unit-type.d.ts +5 -0
  274. package/engine/standard/entries/unit-type.lua +5 -0
  275. package/engine/standard/fields/item.d.ts +4 -0
  276. package/engine/standard/fields/item.lua +6 -0
  277. package/engine/unit.d.ts +6 -1
  278. package/engine/unit.lua +6 -1
  279. package/event.d.ts +1 -1
  280. package/lualib_bundle.lua +1 -1
  281. package/math.d.ts +2 -0
  282. package/math.lua +14 -0
  283. package/network.lua +25 -1
  284. package/objutil/buff.lua +1 -1
  285. package/objutil/object.lua +1 -1
  286. package/operation.d.ts +8 -1
  287. package/operation.lua +38 -18
  288. package/package.json +3 -23
  289. package/patch-lua.lua +15 -0
  290. package/utility/arrays.d.ts +7 -1
  291. package/utility/arrays.lua +17 -0
  292. package/utility/linked-map.d.ts +11 -2
  293. package/utility/linked-map.lua +41 -0
  294. package/utility/linked-set.d.ts +3 -1
  295. package/utility/linked-set.lua +23 -0
  296. package/utility/random.d.ts +102 -0
  297. package/utility/random.lua +273 -0
  298. package/utility/unordered-map.d.ts +27 -0
  299. package/utility/unordered-map.lua +99 -0
  300. package/engine/internal/unit/item.lua +0 -78
  301. /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
  302. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  303. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  304. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -1,16 +1,43 @@
1
1
  /** @noSelfInFile */
2
- import { StandardLightningTypeId } from "../../object-data/entry/lightning-type";
3
- export declare const AERIAL_SHACKLES_LIGHTNING_TYPE_ID: StandardLightningTypeId;
4
- export declare const CHAIN_LIGHTNING_PRIMARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
5
- export declare const CHAIN_LIGHTNING_SECONDARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
6
- export declare const DRAIN_LIFE_LIGHTNING_TYPE_ID: StandardLightningTypeId;
7
- export declare const DRAIN_LIFE_AND_MANA_LIGHTNING_TYPE_ID: StandardLightningTypeId;
8
- export declare const DRAIN_MANA_LIGHTNING_TYPE_ID: StandardLightningTypeId;
9
- export declare const FINGER_OF_DEATH_LIGHTNING_TYPE_ID: StandardLightningTypeId;
10
- export declare const FORKED_LIGHTNING_LIGHTNING_TYPE_ID: StandardLightningTypeId;
11
- export declare const HEALING_WAVE_PRIMARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
12
- export declare const HEALING_WAVE_SECONDARY_LIGHTNING_TYPE_ID: StandardLightningTypeId;
13
- export declare const LIGHTNING_ATTACK_LIGHTNING_TYPE_ID: StandardLightningTypeId;
14
- export declare const MANA_BURN_LIGHTNING_TYPE_ID: StandardLightningTypeId;
15
- export declare const MANA_FLARE_LIGHTNING_TYPE_ID: StandardLightningTypeId;
16
- export declare const SPIRIT_LINK_LIGHTNING_TYPE_ID: StandardLightningTypeId;
2
+ export declare const enum StandardLightningTypeId {
3
+ /** `LEAS` */
4
+ AERIAL_SHACKLES = 1279607123,
5
+ /** `VLCG` */
6
+ CHAIN_LIGHTNING_GOLD = 1447838535,
7
+ /** `CLPB` */
8
+ CHAIN_LIGHTNING_PRIMARY = 1129074754,
9
+ /** `CLSB` */
10
+ CHAIN_LIGHTNING_SECONDARY = 1129075522,
11
+ /** `DRAL` */
12
+ DRAIN_LIFE = 1146241356,
13
+ /** `DRAB` */
14
+ DRAIN_LIFE_AND_MANA = 1146241346,
15
+ /** `DRAM` */
16
+ DRAIN_MANA = 1146241357,
17
+ /** `AFOD` */
18
+ FINGER_OF_DEATH = 1095126852,
19
+ /** `FORK` */
20
+ FORKED_LIGHTNING = 1179603531,
21
+ /** `HWPB` */
22
+ HEALING_WAVE_PRIMARY = 1213681730,
23
+ /** `HWSB` */
24
+ HEALING_WAVE_SECONDARY = 1213682498,
25
+ /** `INIT` */
26
+ INIT = 1229867348,
27
+ /** `DRWL` */
28
+ LIFE_WAVE = 1146246988,
29
+ /** `CHIM` */
30
+ LIGHTNING_ATTACK = 1128810829,
31
+ /** `MBUR` */
32
+ MANA_BURN = 1296192850,
33
+ /** `MFPB` */
34
+ MANA_FLARE = 1296453698,
35
+ /** `DRWM` */
36
+ MANA_WAVE = 1146246989,
37
+ /** `POSS` */
38
+ POSSESSION = 1347375955,
39
+ /** `VLST` */
40
+ SOUL_TETHER = 1447842644,
41
+ /** `SPLK` */
42
+ SPIRIT_LINK = 1397771339
43
+ }
@@ -1,16 +1,2 @@
1
1
  local ____exports = {}
2
- ____exports.AERIAL_SHACKLES_LIGHTNING_TYPE_ID = fourCC("LEAS")
3
- ____exports.CHAIN_LIGHTNING_PRIMARY_LIGHTNING_TYPE_ID = fourCC("CLPB")
4
- ____exports.CHAIN_LIGHTNING_SECONDARY_LIGHTNING_TYPE_ID = fourCC("CLSB")
5
- ____exports.DRAIN_LIFE_LIGHTNING_TYPE_ID = fourCC("DRAL")
6
- ____exports.DRAIN_LIFE_AND_MANA_LIGHTNING_TYPE_ID = fourCC("DRAB")
7
- ____exports.DRAIN_MANA_LIGHTNING_TYPE_ID = fourCC("DRAM")
8
- ____exports.FINGER_OF_DEATH_LIGHTNING_TYPE_ID = fourCC("AFOD")
9
- ____exports.FORKED_LIGHTNING_LIGHTNING_TYPE_ID = fourCC("FORK")
10
- ____exports.HEALING_WAVE_PRIMARY_LIGHTNING_TYPE_ID = fourCC("HWPB")
11
- ____exports.HEALING_WAVE_SECONDARY_LIGHTNING_TYPE_ID = fourCC("HWSB")
12
- ____exports.LIGHTNING_ATTACK_LIGHTNING_TYPE_ID = fourCC("CHIM")
13
- ____exports.MANA_BURN_LIGHTNING_TYPE_ID = fourCC("MBUR")
14
- ____exports.MANA_FLARE_LIGHTNING_TYPE_ID = fourCC("MFPB")
15
- ____exports.SPIRIT_LINK_LIGHTNING_TYPE_ID = fourCC("SPLK")
16
2
  return ____exports
@@ -15,6 +15,7 @@ export declare const MOUNTAIN_KING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
15
  export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
16
  export declare const ARCHER_HIGH_ELF_UNIT_TYPE_ID: StandardUnitTypeId;
17
17
  export declare const CAPTAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
+ export declare const CHAPLAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
19
  export declare const SWORDSMAN_UNIT_TYPE_ID: StandardUnitTypeId;
19
20
  export declare const ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
20
21
  export declare const ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
@@ -47,6 +48,7 @@ export declare const SPIRIT_WALKER_UNIT_TYPE_ID: StandardUnitTypeId;
47
48
  export declare const TAUREN_UNIT_TYPE_ID: StandardUnitTypeId;
48
49
  export declare const WIND_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
49
50
  export declare const WITCH_DOCTOR_UNIT_TYPE_ID: StandardUnitTypeId;
51
+ export declare const BLADEMASTER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
50
52
  export declare const ARCHER_UNIT_TYPE_ID: StandardUnitTypeId;
51
53
  export declare const CHIMAERA_UNIT_TYPE_ID: StandardUnitTypeId;
52
54
  export declare const DRUID_OF_THE_CLAW_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -67,9 +69,11 @@ export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnit
67
69
  export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
68
70
  export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
69
71
  export declare const DEATH_KNIGHT_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
72
+ export declare const DREADLORD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
70
73
  export declare const ZOMBIE_UNIT_TYPE_ID: StandardUnitTypeId;
71
74
  export declare const ZOMBIE_FEMALE_UNIT_TYPE_ID: StandardUnitTypeId;
72
75
  export declare const ARTHAS_EVIL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
76
+ export declare const MAL_GANIS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
73
77
  export declare const DIRE_MAMMOTH_UNIT_TYPE_ID: StandardUnitTypeId;
74
78
  export declare const ELDER_JUNGLE_STALKER_UNIT_TYPE_ID: StandardUnitTypeId;
75
79
  export declare const ENRAGED_ELEMENTAL_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -98,6 +102,7 @@ export declare const WENDIGO_UNIT_TYPE_ID: StandardUnitTypeId;
98
102
  export declare const WENDIGO_SHAMAN_UNIT_TYPE_ID: StandardUnitTypeId;
99
103
  export declare const WILDKIN_UNIT_TYPE_ID: StandardUnitTypeId;
100
104
  export declare const WRAITH_UNIT_TYPE_ID: StandardUnitTypeId;
105
+ export declare const PIT_LORD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
101
106
  export declare const GOBLIN_LAND_MINE_UNIT_TYPE_ID: StandardUnitTypeId;
102
107
  export declare const CIRCLE_OF_POWER_UNIT_TYPE_ID: StandardUnitTypeId;
103
108
  export declare const CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -14,6 +14,7 @@ ____exports.MOUNTAIN_KING_HERO_UNIT_TYPE_ID = fourCC("Hmkg")
14
14
  ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
15
15
  ____exports.ARCHER_HIGH_ELF_UNIT_TYPE_ID = fourCC("nhea")
16
16
  ____exports.CAPTAIN_UNIT_TYPE_ID = fourCC("hcth")
17
+ ____exports.CHAPLAIN_UNIT_TYPE_ID = fourCC("nchp")
17
18
  ____exports.SWORDSMAN_UNIT_TYPE_ID = fourCC("hhes")
18
19
  ____exports.ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID = fourCC("Hapm")
19
20
  ____exports.ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID = fourCC("Hssa")
@@ -46,6 +47,7 @@ ____exports.SPIRIT_WALKER_UNIT_TYPE_ID = fourCC("ospw")
46
47
  ____exports.TAUREN_UNIT_TYPE_ID = fourCC("otau")
47
48
  ____exports.WIND_RIDER_UNIT_TYPE_ID = fourCC("owyv")
48
49
  ____exports.WITCH_DOCTOR_UNIT_TYPE_ID = fourCC("odoc")
50
+ ____exports.BLADEMASTER_HERO_UNIT_TYPE_ID = fourCC("Obla")
49
51
  ____exports.ARCHER_UNIT_TYPE_ID = fourCC("earc")
50
52
  ____exports.CHIMAERA_UNIT_TYPE_ID = fourCC("echm")
51
53
  ____exports.DRUID_OF_THE_CLAW_UNIT_TYPE_ID = fourCC("edoc")
@@ -66,9 +68,11 @@ ____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
66
68
  ____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
67
69
  ____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
68
70
  ____exports.DEATH_KNIGHT_HERO_UNIT_TYPE_ID = fourCC("Udea")
71
+ ____exports.DREADLORD_HERO_UNIT_TYPE_ID = fourCC("Udre")
69
72
  ____exports.ZOMBIE_UNIT_TYPE_ID = fourCC("nzom")
70
73
  ____exports.ZOMBIE_FEMALE_UNIT_TYPE_ID = fourCC("nzof")
71
74
  ____exports.ARTHAS_EVIL_HERO_UNIT_TYPE_ID = fourCC("Uear")
75
+ ____exports.MAL_GANIS_HERO_UNIT_TYPE_ID = fourCC("Umal")
72
76
  ____exports.DIRE_MAMMOTH_UNIT_TYPE_ID = fourCC("nmdr")
73
77
  ____exports.ELDER_JUNGLE_STALKER_UNIT_TYPE_ID = fourCC("njga")
74
78
  ____exports.ENRAGED_ELEMENTAL_UNIT_TYPE_ID = fourCC("nele")
@@ -97,6 +101,7 @@ ____exports.WENDIGO_UNIT_TYPE_ID = fourCC("nwen")
97
101
  ____exports.WENDIGO_SHAMAN_UNIT_TYPE_ID = fourCC("nwns")
98
102
  ____exports.WILDKIN_UNIT_TYPE_ID = fourCC("nowb")
99
103
  ____exports.WRAITH_UNIT_TYPE_ID = fourCC("ngh2")
104
+ ____exports.PIT_LORD_HERO_UNIT_TYPE_ID = fourCC("Nplh")
100
105
  ____exports.GOBLIN_LAND_MINE_UNIT_TYPE_ID = fourCC("nglm")
101
106
  ____exports.CIRCLE_OF_POWER_UNIT_TYPE_ID = fourCC("ncop")
102
107
  ____exports.CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID = fourCC("ncp2")
@@ -0,0 +1,4 @@
1
+ /** @noSelfInFile */
2
+ import { ItemBooleanField } from "../../object-field/item";
3
+ export declare const CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD: ItemBooleanField & symbol;
4
+ export declare const IS_ACTIVELY_USED_ITEM_FIELD: ItemBooleanField & symbol;
@@ -0,0 +1,6 @@
1
+ local ____exports = {}
2
+ local ____item = require("engine.object-field.item")
3
+ local ItemBooleanField = ____item.ItemBooleanField
4
+ ____exports.CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD = ItemBooleanField:create(fourCC("ipaw"))
5
+ ____exports.IS_ACTIVELY_USED_ITEM_FIELD = ItemBooleanField:create(fourCC("iusa"))
6
+ return ____exports
package/engine/unit.d.ts CHANGED
@@ -2,10 +2,14 @@
2
2
  import "./internal/unit";
3
3
  import "./internal/unit/order";
4
4
  import "./internal/unit/ability";
5
+ import "./internal/unit/appearance";
6
+ import "./internal/unit/extended-inventory";
7
+ import "./internal/unit/equipment-inventory";
5
8
  import "./internal/unit/allowed-targets";
6
9
  import "./internal/unit/buff";
7
10
  import "./internal/unit/expiration-timer";
8
- import "./internal/unit/item";
11
+ import "./internal/unit/inventory";
12
+ import "./internal/unit/item-order-events";
9
13
  import "./internal/unit+ability";
10
14
  import "./internal/unit+damage";
11
15
  import "./internal/unit+rally";
@@ -23,6 +27,7 @@ import "./internal/unit/attributes";
23
27
  import "./internal/unit/fly-height";
24
28
  import "./internal/unit/scale";
25
29
  import "./internal/unit/interrupts";
30
+ import "./internal/unit/range-event";
26
31
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
27
32
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
28
33
  export * from "./internal/unit+damage";
package/engine/unit.lua CHANGED
@@ -2,10 +2,14 @@ local ____exports = {}
2
2
  require("engine.internal.unit")
3
3
  require("engine.internal.unit.order")
4
4
  require("engine.internal.unit.ability")
5
+ require("engine.internal.unit.appearance")
6
+ require("engine.internal.unit.extended-inventory")
7
+ require("engine.internal.unit.equipment-inventory")
5
8
  require("engine.internal.unit.allowed-targets")
6
9
  require("engine.internal.unit.buff")
7
10
  require("engine.internal.unit.expiration-timer")
8
- require("engine.internal.unit.item")
11
+ require("engine.internal.unit.inventory")
12
+ require("engine.internal.unit.item-order-events")
9
13
  require("engine.internal.unit+ability")
10
14
  require("engine.internal.unit+damage")
11
15
  require("engine.internal.unit+rally")
@@ -23,6 +27,7 @@ require("engine.internal.unit.attributes")
23
27
  require("engine.internal.unit.fly-height")
24
28
  require("engine.internal.unit.scale")
25
29
  require("engine.internal.unit.interrupts")
30
+ require("engine.internal.unit.range-event")
26
31
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
27
32
  do
28
33
  local ____unit = require("engine.internal.unit")
package/event.d.ts CHANGED
@@ -40,7 +40,7 @@ export declare const createDispatchingEvent: {
40
40
  <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (this: void, ...args: EventParameters<T>) => number, invokeEvent?: (this: void, event: S, ...args: EventParameters<T>) => unknown, ...createEvent: [...(Event<any> extends S ? [((this: void) => S)?] : [(this: void) => S])]): DispatchingEvent<EventParameters<T>, T, S>;
41
41
  };
42
42
  export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
43
- constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
43
+ constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false, ...unknown[]] | [boolean, ...R]>);
44
44
  }
45
45
  export declare class EventParametersCaptor<T extends any[]> {
46
46
  private readonly event;
package/lualib_bundle.lua CHANGED
@@ -2241,7 +2241,7 @@ local function __TS__SourceMapTraceBack(fileName, sourceMap)
2241
2241
  end
2242
2242
  local result = string.gsub(
2243
2243
  trace,
2244
- "(%S+)%.lua:(%d+)",
2244
+ "([^%s<]+)%.lua:(%d+)",
2245
2245
  function(file, line) return replacer(nil, file .. ".lua", file .. ".ts", line) end
2246
2246
  )
2247
2247
  local function stringReplacer(____, file, line)
package/math.d.ts CHANGED
@@ -23,6 +23,8 @@ export declare const floor: typeof math.floor;
23
23
  export declare const log: typeof math.log;
24
24
  export declare const max: typeof math.max;
25
25
  export declare const min: typeof math.min;
26
+ export declare const sum: (x: number, ...numbers: number[]) => number;
27
+ export declare const product: (x: number, ...numbers: number[]) => number;
26
28
  /** Returns the signum function of the argument;
27
29
  * zero if the argument is zero,
28
30
  * 1.0 if the argument is greater than zero,
package/math.lua CHANGED
@@ -39,6 +39,20 @@ ____exports.floor = math.floor
39
39
  ____exports.log = math.log
40
40
  ____exports.max = math.max
41
41
  ____exports.min = math.min
42
+ ____exports.sum = function(x, ...)
43
+ for i = 1, select("#", ...) do
44
+ local number = select(i, ...)
45
+ x = x + number
46
+ end
47
+ return x
48
+ end
49
+ ____exports.product = function(x, ...)
50
+ for i = 1, select("#", ...) do
51
+ local number = select(i, ...)
52
+ x = x * number
53
+ end
54
+ return x
55
+ end
42
56
  --- Returns the signum function of the argument;
43
57
  -- zero if the argument is zero,
44
58
  -- 1.0 if the argument is greater than zero,
package/network.lua CHANGED
@@ -8,6 +8,7 @@ local ____exports = {}
8
8
  local ____event = require("event")
9
9
  local TriggerEvent = ____event.TriggerEvent
10
10
  local ____exception = require("exception")
11
+ local CancellationException = ____exception.CancellationException
11
12
  local IllegalArgumentException = ____exception.IllegalArgumentException
12
13
  local ____player = require("core.types.player")
13
14
  local Player = ____player.Player
@@ -86,6 +87,9 @@ function SyncOperation.prototype.____constructor(self, player, data)
86
87
  self.l = #self.d
87
88
  end
88
89
  function SyncOperation.prototype.estimate(self)
90
+ if self.isCanceled or not self.player.isPlaying then
91
+ return __TS__Promise.reject(__TS__New(CancellationException))
92
+ end
89
93
  if self.player.isLocal then
90
94
  sendSyncData(
91
95
  "__oh",
@@ -98,6 +102,7 @@ function SyncOperation.prototype.estimate(self)
98
102
  end
99
103
  function SyncOperation.prototype.work(self)
100
104
  if self.progress >= self.maximum then
105
+ syncOperationById[self.x] = nil
101
106
  return decode(concat(self.c))
102
107
  end
103
108
  self.s = packetsPerRound
@@ -116,7 +121,18 @@ function SyncOperation.prototype.work(self)
116
121
  return __TS__New(__TS__Promise, syncPromiseExecutor)
117
122
  end
118
123
  function SyncOperation.prototype.doCancel(self)
119
- return false
124
+ if not (syncOperationById[self.x] ~= nil) then
125
+ return false
126
+ end
127
+ syncOperationById[self.x] = nil
128
+ local ____opt_1 = self.r
129
+ if ____opt_1 ~= nil then
130
+ ____opt_1(
131
+ self,
132
+ __TS__New(CancellationException)
133
+ )
134
+ end
135
+ return true
120
136
  end
121
137
  __TS__ObjectDefineProperty(
122
138
  SyncOperation,
@@ -178,6 +194,7 @@ SyncOperation._ = (function()
178
194
  local resolveWork = syncOperation.w
179
195
  if resolveWork then
180
196
  if syncOperation.progress >= syncOperation.maximum then
197
+ syncOperationById[id] = nil
181
198
  resolveWork(
182
199
  nil,
183
200
  decode(concat(chunks))
@@ -188,6 +205,13 @@ SyncOperation._ = (function()
188
205
  end
189
206
  end
190
207
  end)
208
+ Player.onLeave:addListener(function(player)
209
+ for ____, operation in pairs(syncOperationById) do
210
+ if operation.player == player then
211
+ operation:cancel()
212
+ end
213
+ end
214
+ end)
191
215
  end)()
192
216
  function ____exports.synchronize(player, data)
193
217
  return __TS__New(____exports.SyncOperation, player, data):execute()
package/objutil/buff.lua CHANGED
@@ -527,7 +527,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
527
527
  ability:setField(ABILITY_RLF_DURATION_NORMAL, level, actualDuration)
528
528
  ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
529
529
  end,
530
- preset.positive and (preset.magic and orderId("innerfire") or 852609) or (preset.magic and orderId("cripple") or orderId("flamingarrowstarg")),
530
+ preset.positive and (preset.magic and 852066 or 852609) or (preset.magic and 852189 or 852173),
531
531
  unit
532
532
  )
533
533
  if slowPoisonMethod then
@@ -153,7 +153,7 @@ end
153
153
  function ObjectDefinition.getLevelArrayFieldValue(self, level, value, values)
154
154
  return type(values) == "function" and values(level, value) or (__TS__ArrayIsArray(values[1]) and values[1] or values)
155
155
  end
156
- ____exports.ObjectType = ObjectType or ({})
156
+ ____exports.ObjectType = ____exports.ObjectType or ({})
157
157
  ____exports.ObjectType.ABILITY = 0
158
158
  ____exports.ObjectType[____exports.ObjectType.ABILITY] = "ABILITY"
159
159
  ____exports.ObjectType.ITEM = 1
package/operation.d.ts CHANGED
@@ -16,9 +16,11 @@ export { OperationContinue };
16
16
  export declare abstract class Operation<T> {
17
17
  protected constructor();
18
18
  private started;
19
+ private settled;
20
+ private canceled;
19
21
  protected progress: number;
20
22
  protected maximum: number;
21
- isCanceled: boolean;
23
+ get isCanceled(): boolean;
22
24
  get isStarted(): boolean;
23
25
  execute(): OperationMonitor<T>;
24
26
  protected abstract estimate(): number | Promise<number>;
@@ -30,6 +32,11 @@ export declare abstract class Operation<T> {
30
32
  ...result: [success: true, result: T] | [success: false, reason?: any]
31
33
  ]>;
32
34
  get onProgress(): Event<[operation: Operation<T>]>;
35
+ /**
36
+ * Invoked with `isCanceled` already set. Should unblock any pending `estimate`/`work` promise
37
+ * (e.g. by rejecting it) and return whether cancellation is possible; on `false` the canceled
38
+ * state is reverted.
39
+ */
33
40
  protected abstract doCancel(): boolean;
34
41
  cancel(): boolean;
35
42
  }
package/operation.lua CHANGED
@@ -22,10 +22,7 @@ OperationMonitor.name = "OperationMonitor"
22
22
  __TS__ClassExtends(OperationMonitor, __TS__Promise)
23
23
  function OperationMonitor.prototype.____constructor(self, operation, ...)
24
24
  local args = {...}
25
- __TS__Promise.prototype.____constructor(
26
- self,
27
- table.unpack(args)
28
- )
25
+ __TS__Promise.prototype.____constructor(self, ...)
29
26
  self.o = operation
30
27
  end
31
28
  function OperationMonitor.prototype.cancel(self)
@@ -38,9 +35,10 @@ local Operation = ____exports.Operation
38
35
  Operation.name = "Operation"
39
36
  function Operation.prototype.____constructor(self)
40
37
  self.started = false
38
+ self.settled = false
39
+ self.canceled = false
41
40
  self.progress = 0
42
41
  self.maximum = 0
43
- self.isCanceled = false
44
42
  end
45
43
  function Operation.prototype.execute(self)
46
44
  if self.started then
@@ -58,6 +56,12 @@ function Operation.prototype.execute(self)
58
56
  local result
59
57
  local progress = self.progress
60
58
  local ____try = __TS__AsyncAwaiter(function()
59
+ if self.canceled then
60
+ error(
61
+ __TS__New(CancellationException),
62
+ 0
63
+ )
64
+ end
61
65
  local maximum = __TS__Await(self:estimate())
62
66
  self.maximum = maximum
63
67
  if maximum ~= 0 then
@@ -68,20 +72,19 @@ function Operation.prototype.execute(self)
68
72
  end
69
73
  repeat
70
74
  do
71
- if self.isCanceled then
72
- local reason = __TS__New(CancellationException)
73
- reject(nil, reason)
74
- local onFailure = ____rawget(self, "onFailure")
75
- if onFailure ~= nil then
76
- Event.invoke(onFailure, self, reason)
77
- end
78
- local onComplete = ____rawget(self, "onComplete")
79
- if onComplete ~= nil then
80
- Event.invoke(onComplete, self, false, reason)
81
- end
82
- return ____awaiter_resolve(nil)
75
+ if self.canceled then
76
+ error(
77
+ __TS__New(CancellationException),
78
+ 0
79
+ )
83
80
  end
84
81
  result = __TS__Await(self:work())
82
+ if self.canceled then
83
+ error(
84
+ __TS__New(CancellationException),
85
+ 0
86
+ )
87
+ end
85
88
  if self.progress ~= progress or self.maximum ~= maximum then
86
89
  progress = self.progress
87
90
  maximum = self.maximum
@@ -96,6 +99,7 @@ function Operation.prototype.execute(self)
96
99
  __TS__Await(____try.catch(
97
100
  ____try,
98
101
  function(____, reason)
102
+ self.settled = true
99
103
  reject(nil, reason)
100
104
  local onFailure = ____rawget(self, "onFailure")
101
105
  if onFailure ~= nil then
@@ -108,6 +112,7 @@ function Operation.prototype.execute(self)
108
112
  return ____awaiter_resolve(nil)
109
113
  end
110
114
  ))
115
+ self.settled = true
111
116
  resolve(nil, result)
112
117
  local onSuccess = ____rawget(self, "onSuccess")
113
118
  if onSuccess ~= nil then
@@ -122,12 +127,27 @@ function Operation.prototype.execute(self)
122
127
  )
123
128
  end
124
129
  function Operation.prototype.cancel(self)
130
+ if self.canceled then
131
+ return true
132
+ end
133
+ if self.settled then
134
+ return false
135
+ end
136
+ self.canceled = true
125
137
  if self:doCancel() then
126
- self.isCanceled = true
127
138
  return true
128
139
  end
140
+ self.canceled = false
129
141
  return false
130
142
  end
143
+ __TS__SetDescriptor(
144
+ Operation.prototype,
145
+ "isCanceled",
146
+ {get = function(self)
147
+ return self.canceled
148
+ end},
149
+ true
150
+ )
131
151
  __TS__SetDescriptor(
132
152
  Operation.prototype,
133
153
  "isStarted",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "warscript",
4
- "version": "0.0.1-dev.8895ff6",
4
+ "version": "0.0.1-dev.89bc33b",
5
5
  "description": "A typescript library for Warcraft III using Warpack.",
6
6
  "keywords": [
7
7
  "warcraft",
@@ -13,31 +13,11 @@
13
13
  "type": "git",
14
14
  "url": "git+https://github.com/rhazarian/warscript.git"
15
15
  },
16
- "scripts": {
17
- "clean": "rimraf dist",
18
- "prebuild": "npm run clean",
19
- "build": "tstl && copyfiles -u 1 \"src/**/*.d.ts\" \"src/**/*.lua\" dist && copyfiles LICENSE package.json dist",
20
- "prepublishOnly": "echo You should run 'npm run publish' instead. && exit 1",
21
- "publish": "npm run build && npm publish ./dist --ignore-scripts"
22
- },
23
16
  "peerDependencies": {
24
17
  "@warscript/language-extensions": "^0.0.1",
25
- "@warscript/tstl-plugin": "^0.0.4",
18
+ "@warscript/tstl-plugin": "^0.0.6",
26
19
  "lua-types": "^2.13.1",
27
- "warpack": "0.0.1-dev.efd0770"
28
- },
29
- "devDependencies": {
30
- "@typescript-eslint/eslint-plugin": "^8.13.0",
31
- "@typescript-eslint/parser": "^8.13.0",
32
- "async": "^3.2.6",
33
- "copyfiles": "^2.4.1",
34
- "eslint": "^9.14.0",
35
- "eslint-config-prettier": "^9.1.0",
36
- "eslint-plugin-prettier": "^5.2.1",
37
- "prettier": "^3.3.3",
38
- "rimraf": "^6.0.1",
39
- "ts-node": "^10.9.2",
40
- "tsc-watch": "^6.2.0"
20
+ "warpack": "0.0.1-dev.2e316da"
41
21
  },
42
22
  "publishConfig": {
43
23
  "access": "public",
package/patch-lua.lua CHANGED
@@ -1,5 +1,9 @@
1
+ local error = _G.error
1
2
  local getmetatable = _G.getmetatable
2
3
  local ipairs = _G.ipairs
4
+ local select = _G.select
5
+ local tostring = _G.tostring
6
+ local tableconcat = table.concat
3
7
 
4
8
  _G.ipairs = function(t)
5
9
  local metatable = getmetatable(t)
@@ -8,3 +12,14 @@ _G.ipairs = function(t)
8
12
  end
9
13
  return ipairs(t)
10
14
  end
15
+
16
+ _G.assert = function(v, ...)
17
+ if not v then
18
+ local args = {}
19
+ for i = 1, select("#", ...) do
20
+ args[i] = tostring(select(i, ...))
21
+ end
22
+ error(tableconcat(args, " "))
23
+ end
24
+ return v, ...
25
+ end
@@ -1,6 +1,11 @@
1
1
  /** @noSelfInFile */
2
- import { TupleOf } from "./types";
2
+ import { NonEmptyArray, ReadonlyNonEmptyArray, TupleOf } from "./types";
3
3
  export declare const emptyArray: <T>() => readonly T[];
4
+ /** Checks for any element with `next` instead of computing the length. */
5
+ export declare const isNonEmptyArray: {
6
+ <T>(array: T[]): array is NonEmptyArray<T>;
7
+ <T>(array: readonly T[]): array is ReadonlyNonEmptyArray<T>;
8
+ };
4
9
  export declare const joinToString: <T>(array: readonly T[], separator: string, transform?: (element: T) => string) => string;
5
10
  export declare const arrayOfNotNull: <T>(...elements: readonly (T | undefined | null)[]) => T[];
6
11
  export declare const array: <T, N extends number>(length: N, initialize: (index: number) => T) => TupleOf<T, N>;
@@ -42,6 +47,7 @@ export declare const associateByIndexed: <K extends AnyNotNil, V>(array: readonl
42
47
  export declare const associateWith: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (value: K) => V) => LuaMap<K, V>;
43
48
  export declare const associateWithIndexed: <K extends AnyNotNil, V>(array: readonly K[], valueSelector: (index: number, value: K) => V) => LuaMap<K, V>;
44
49
  export declare const filter: <T>(array: readonly T[], predicate: (value: T) => boolean) => T[];
50
+ export declare const filterNot: <T>(array: readonly T[], predicate: (value: T) => boolean) => T[];
45
51
  export declare const average: (array: readonly number[]) => number;
46
52
  export declare const sum: (array: readonly number[]) => number;
47
53
  export declare const product: (array: readonly number[]) => number;
@@ -7,6 +7,7 @@ local ____functions = require("utility.functions")
7
7
  local identity = ____functions.identity
8
8
  local mathMax = math.max
9
9
  local mathMin = math.min
10
+ local next = _G.next
10
11
  local select = _G.select
11
12
  local tableConcat = table.concat
12
13
  local tableSort = table.sort
@@ -14,6 +15,10 @@ local EMPTY_ARRAY = {}
14
15
  ____exports.emptyArray = function()
15
16
  return EMPTY_ARRAY
16
17
  end
18
+ --- Checks for any element with `next` instead of computing the length.
19
+ ____exports.isNonEmptyArray = function(array)
20
+ return (next(array)) ~= nil
21
+ end
17
22
  ____exports.joinToString = function(array, separator, transform)
18
23
  if transform == nil then
19
24
  transform = tostring
@@ -238,6 +243,18 @@ ____exports.filter = function(array, predicate)
238
243
  end
239
244
  return result
240
245
  end
246
+ ____exports.filterNot = function(array, predicate)
247
+ local result = {}
248
+ local j = 1
249
+ for i = 1, #array do
250
+ local value = array[i]
251
+ if not predicate(value) then
252
+ result[j] = value
253
+ j = j + 1
254
+ end
255
+ end
256
+ return result
257
+ end
241
258
  ____exports.average = function(array)
242
259
  local sum = 0
243
260
  local count = #array
@@ -8,10 +8,16 @@ type IteratorState<K extends AnyNotNil, V> = {
8
8
  type OneSidedTypeGuard = {
9
9
  readonly __oneSidedTypeGuard: unique symbol;
10
10
  };
11
+ export interface ReadonlyLinkedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
12
+ readonly keys: ReadonlyLinkedSet<K>;
13
+ get(key: K): V | undefined;
14
+ contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
15
+ readonly size: number;
16
+ }
11
17
  export interface LinkedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
12
- readonly __linkedSet: unique symbol;
18
+ readonly __linkedMap: unique symbol;
13
19
  }
14
- export declare class LinkedMap<K extends AnyNotNil, V> {
20
+ export declare class LinkedMap<K extends AnyNotNil, V> implements ReadonlyLinkedMap<K, V> {
15
21
  private k;
16
22
  private v;
17
23
  get keys(): ReadonlyLinkedSet<K>;
@@ -21,6 +27,9 @@ export declare class LinkedMap<K extends AnyNotNil, V> {
21
27
  remove(key: K): boolean;
22
28
  contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
23
29
  get size(): number;
30
+ protected __len(): number;
24
31
  protected __pairs(this: LinkedMap<K, V>): LuaIterator<LuaMultiReturn<[K | undefined, V | undefined]>, IteratorState<K, V>>;
25
32
  }
33
+ export declare const emptyLinkedMap: <K extends AnyNotNil, V>() => ReadonlyLinkedMap<K, V>;
34
+ export declare const mutableLinkedMap: <K extends AnyNotNil, V>() => LinkedMap<K, V>;
26
35
  export {};