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,169 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__New = ____lualib.__TS__New
4
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
5
+ local ____exports = {}
6
+ local ____unit = require("engine.internal.unit")
7
+ local Unit = ____unit.Unit
8
+ local UnitTriggerEvent = ____unit.UnitTriggerEvent
9
+ local ____item = require("engine.internal.item")
10
+ local Item = ____item.Item
11
+ local ____event = require("event")
12
+ local IgnoreEvent = ____event.IgnoreEvent
13
+ local ____dummy = require("objutil.dummy")
14
+ local dummyUnitId = ____dummy.dummyUnitId
15
+ local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
16
+ local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
17
+ local convertEquipmentType = ConvertEquipmentType
18
+ local convertLoadoutSlot = ConvertLoadoutSlot
19
+ local getEquippedItem = GetEquippedItem
20
+ local getStackingItemSource = BlzGetStackingItemSource
21
+ local getStackingItemTarget = BlzGetStackingItemTarget
22
+ local getStackingItemTargetPreviousCharges = BlzGetStackingItemTargetPreviousCharges
23
+ local getTriggerUnit = GetTriggerUnit
24
+ local getUnequippedItem = GetUnequippedItem
25
+ local getUnitTypeId = GetUnitTypeId
26
+ local unitCanEquipItemOfEquipmentType = UnitCanEquipItemOfEquipmentType
27
+ local unitEquipItem = UnitEquipItem
28
+ local unitHasAnyItemEquiped = UnitHasAnyItemEquiped
29
+ local unitHasItemEquipmentOfType = UnitHasItemEquipmentOfType
30
+ local unitHasItemEquipped = UnitHasItemEquipped
31
+ local unitHasLoadoutSlotEmpty = UnitHasLoadoutSlotEmpty
32
+ local unitItemInEquipmentSlot = UnitItemInEquipmentSlot
33
+ local unitUnequipItem = UnitUnequipItem
34
+ local unitUnequipItemFromSlot = UnitUnequipItemFromSlot
35
+ local ____rawget = _G.rawget
36
+ local rawset = _G.rawset
37
+ local ____type = _G.type
38
+ local EQUIPMENT_SLOT_COUNT = bj_MAX_EQUIPMENT_INVENTORY
39
+ local handleByUnitEquipment = setmetatable({}, {__mode = "k"})
40
+ local function unitEquipmentNext(handle, slot)
41
+ if slot >= EQUIPMENT_SLOT_COUNT then
42
+ return nil, nil
43
+ end
44
+ return slot + 1, Item:of(unitItemInEquipmentSlot(
45
+ handle,
46
+ convertLoadoutSlot(slot)
47
+ ))
48
+ end
49
+ --- A live view indexed by EquipmentSlot. Equip operations let the engine choose the slot.
50
+ ____exports.UnitEquipment = __TS__Class()
51
+ local UnitEquipment = ____exports.UnitEquipment
52
+ UnitEquipment.name = "UnitEquipment"
53
+ function UnitEquipment.prototype.____constructor(self, handle)
54
+ handleByUnitEquipment[self] = handle
55
+ end
56
+ function UnitEquipment.prototype.equip(self, item)
57
+ return unitEquipItem(handleByUnitEquipment[self], item.handle)
58
+ end
59
+ function UnitEquipment.prototype.unequip(self, item)
60
+ unitUnequipItem(handleByUnitEquipment[self], item.handle)
61
+ end
62
+ function UnitEquipment.prototype.unequipSlot(self, slot)
63
+ return Item:of(unitUnequipItemFromSlot(
64
+ handleByUnitEquipment[self],
65
+ convertLoadoutSlot(slot)
66
+ ))
67
+ end
68
+ function UnitEquipment.prototype.has(self, item)
69
+ return unitHasItemEquipped(handleByUnitEquipment[self], item.handle)
70
+ end
71
+ function UnitEquipment.prototype.hasAny(self)
72
+ return unitHasAnyItemEquiped(handleByUnitEquipment[self])
73
+ end
74
+ function UnitEquipment.prototype.isSlotEmpty(self, slot)
75
+ return unitHasLoadoutSlotEmpty(
76
+ handleByUnitEquipment[self],
77
+ convertLoadoutSlot(slot)
78
+ )
79
+ end
80
+ function UnitEquipment.prototype.hasType(self, ____type)
81
+ return unitHasItemEquipmentOfType(
82
+ handleByUnitEquipment[self],
83
+ convertEquipmentType(____type)
84
+ )
85
+ end
86
+ function UnitEquipment.prototype.canEquipType(self, ____type)
87
+ return unitCanEquipItemOfEquipmentType(
88
+ handleByUnitEquipment[self],
89
+ convertEquipmentType(____type)
90
+ )
91
+ end
92
+ function UnitEquipment.prototype.findSlot(self, item)
93
+ local handle = handleByUnitEquipment[self]
94
+ for slot = 0, EQUIPMENT_SLOT_COUNT - 1 do
95
+ if unitItemInEquipmentSlot(
96
+ handle,
97
+ convertLoadoutSlot(slot)
98
+ ) == item.handle then
99
+ return slot
100
+ end
101
+ end
102
+ return nil
103
+ end
104
+ function UnitEquipment.prototype.__index(self, key)
105
+ if ____type(key) == "number" then
106
+ return Item:of(unitItemInEquipmentSlot(
107
+ handleByUnitEquipment[self],
108
+ convertLoadoutSlot(key - 1)
109
+ ))
110
+ end
111
+ return ____rawget(____exports.UnitEquipment.prototype, key)
112
+ end
113
+ function UnitEquipment.prototype.__len(self)
114
+ return EQUIPMENT_SLOT_COUNT
115
+ end
116
+ function UnitEquipment.prototype.__ipairs(self)
117
+ return unitEquipmentNext, handleByUnitEquipment[self], 0
118
+ end
119
+ __TS__ObjectDefineProperty(
120
+ Unit.prototype,
121
+ "equipment",
122
+ {get = function(self)
123
+ local equipment = __TS__New(____exports.UnitEquipment, self.handle)
124
+ rawset(self, "equipment", equipment)
125
+ return equipment
126
+ end}
127
+ )
128
+ rawset(
129
+ Unit,
130
+ "itemEquippedEvent",
131
+ __TS__New(
132
+ UnitTriggerEvent,
133
+ EVENT_PLAYER_UNIT_EQUIP_ITEM,
134
+ function()
135
+ local unit = getTriggerUnit()
136
+ local item = getEquippedItem()
137
+ if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
138
+ return Unit:of(unit), Item:of(item)
139
+ end
140
+ return IgnoreEvent
141
+ end
142
+ )
143
+ )
144
+ rawset(
145
+ Unit,
146
+ "itemUnequippedEvent",
147
+ __TS__New(
148
+ UnitTriggerEvent,
149
+ EVENT_PLAYER_UNIT_UNEQUIP_ITEM,
150
+ function()
151
+ local unit = getTriggerUnit()
152
+ local item = getUnequippedItem()
153
+ if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
154
+ return Unit:of(unit), Item:of(item)
155
+ end
156
+ return IgnoreEvent
157
+ end
158
+ )
159
+ )
160
+ rawset(
161
+ Unit,
162
+ "itemStackedEvent",
163
+ __TS__New(
164
+ UnitTriggerEvent,
165
+ EVENT_PLAYER_UNIT_STACK_ITEM,
166
+ function() return Unit:of(getTriggerUnit()), Item:of(getStackingItemTarget()), Item:of(getStackingItemSource()), getStackingItemTargetPreviousCharges() end
167
+ )
168
+ )
169
+ return ____exports
@@ -0,0 +1,7 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ flyHeight: number;
5
+ }
6
+ }
7
+ export {};
@@ -0,0 +1,20 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
+ local ____exports = {}
4
+ local ____unit = require("engine.internal.unit")
5
+ local Unit = ____unit.Unit
6
+ local ____unit = require("engine.standard.fields.unit")
7
+ local FLY_HEIGHT_UNIT_FIELD = ____unit.FLY_HEIGHT_UNIT_FIELD
8
+ __TS__ObjectDefineProperty(
9
+ Unit.prototype,
10
+ "flyHeight",
11
+ {
12
+ get = function(self)
13
+ return FLY_HEIGHT_UNIT_FIELD:getValue(self)
14
+ end,
15
+ set = function(self, value)
16
+ FLY_HEIGHT_UNIT_FIELD:setValue(self, value)
17
+ end
18
+ }
19
+ )
20
+ return ____exports
@@ -0,0 +1,12 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ interruptAttack(this: Unit): void;
5
+ }
6
+ }
7
+ declare module "../unit" {
8
+ interface Unit {
9
+ interruptMovement(this: Unit): void;
10
+ }
11
+ }
12
+ export {};
@@ -0,0 +1,28 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.internal.unit")
3
+ local Unit = ____unit.Unit
4
+ local ____unit_2Dmissile_2Dlaunch = require("engine.internal.unit-missile-launch")
5
+ local resetAutoAttackTimer = ____unit_2Dmissile_2Dlaunch.resetAutoAttackTimer
6
+ local unitDisableAbility = BlzUnitDisableAbility
7
+ local unitInterruptAttack = BlzUnitInterruptAttack
8
+ Unit.prototype.interruptAttack = function(self)
9
+ unitInterruptAttack(self.handle)
10
+ resetAutoAttackTimer(self)
11
+ end
12
+ Unit.prototype.interruptMovement = function(self)
13
+ local handle = self.handle
14
+ unitDisableAbility(
15
+ handle,
16
+ fourCC("Amov"),
17
+ true,
18
+ false
19
+ )
20
+ unitDisableAbility(
21
+ handle,
22
+ fourCC("Amov"),
23
+ false,
24
+ false
25
+ )
26
+ resetAutoAttackTimer(self)
27
+ end
28
+ return ____exports
@@ -1,6 +1,6 @@
1
1
  /** @noSelfInFile */
2
2
  import { Item } from "../item";
3
- export interface UnitItems extends ReadonlyArray<Item | undefined> {
3
+ export interface UnitInventory extends ReadonlyArray<Item | undefined> {
4
4
  readonly length: 0 | 1 | 2 | 3 | 4 | 5 | 6;
5
5
  [0]: Item | undefined;
6
6
  [1]: Item | undefined;
@@ -9,7 +9,7 @@ export interface UnitItems extends ReadonlyArray<Item | undefined> {
9
9
  [4]: Item | undefined;
10
10
  [5]: Item | undefined;
11
11
  }
12
- export declare class UnitItems {
12
+ export declare class UnitInventory {
13
13
  constructor(handle: junit);
14
14
  findSlot(item: Item): 0 | 1 | 2 | 3 | 4 | 5 | undefined;
15
15
  protected __newindex(slot: number, item: Item | undefined): void;
@@ -19,6 +19,6 @@ export declare class UnitItems {
19
19
  }
20
20
  declare module "../unit" {
21
21
  interface Unit {
22
- readonly items: UnitItems;
22
+ readonly inventory: UnitInventory;
23
23
  }
24
24
  }
@@ -18,25 +18,24 @@ local setItemBooleanField = BlzSetItemBooleanField
18
18
  local unitInventorySize = UnitInventorySize
19
19
  local unitItemInSlot = UnitItemInSlot
20
20
  local unitRemoveItemFromSlot = UnitRemoveItemFromSlot
21
- local handleByUnitItems = setmetatable({}, {__mode = "k"})
22
- local function unitItemsNext(handle, index)
23
- local slot = index & 7
24
- if index >> 3 == slot then
21
+ local handleByUnitInventory = setmetatable({}, {__mode = "k"})
22
+ local function unitInventoryNext(handle, slot)
23
+ if slot >= unitInventorySize(handle) then
25
24
  return nil, nil
26
25
  end
27
- return index + 1, Item:of(unitItemInSlot(handle, slot))
26
+ return slot + 1, Item:of(unitItemInSlot(handle, slot))
28
27
  end
29
- ____exports.UnitItems = __TS__Class()
30
- local UnitItems = ____exports.UnitItems
31
- UnitItems.name = "UnitItems"
32
- function UnitItems.prototype.____constructor(self, handle)
33
- handleByUnitItems[self] = handle
28
+ ____exports.UnitInventory = __TS__Class()
29
+ local UnitInventory = ____exports.UnitInventory
30
+ UnitInventory.name = "UnitInventory"
31
+ function UnitInventory.prototype.____constructor(self, handle)
32
+ handleByUnitInventory[self] = handle
34
33
  end
35
- function UnitItems.prototype.findSlot(self, item)
36
- return findUnitItemSlot(handleByUnitItems[self], item.handle)
34
+ function UnitInventory.prototype.findSlot(self, item)
35
+ return findUnitItemSlot(handleByUnitInventory[self], item.handle)
37
36
  end
38
- function UnitItems.prototype.__newindex(self, slot, item)
39
- local handle = handleByUnitItems[self]
37
+ function UnitInventory.prototype.__newindex(self, slot, item)
38
+ local handle = handleByUnitInventory[self]
40
39
  if slot < 1 or slot > unitInventorySize(handle) then
41
40
  return
42
41
  end
@@ -53,26 +52,26 @@ function UnitItems.prototype.__newindex(self, slot, item)
53
52
  end
54
53
  end
55
54
  end
56
- function UnitItems.prototype.__index(self, key)
55
+ function UnitInventory.prototype.__index(self, key)
57
56
  if ____type(key) == "number" then
58
- return Item:of(unitItemInSlot(handleByUnitItems[self], key - 1))
57
+ return Item:of(unitItemInSlot(handleByUnitInventory[self], key - 1))
59
58
  end
60
- return rawget(____exports.UnitItems.prototype, key)
59
+ return rawget(____exports.UnitInventory.prototype, key)
61
60
  end
62
- function UnitItems.prototype.__len(self)
63
- return unitInventorySize(handleByUnitItems[self])
61
+ function UnitInventory.prototype.__len(self)
62
+ return unitInventorySize(handleByUnitInventory[self])
64
63
  end
65
- function UnitItems.prototype.__ipairs(self)
66
- local handle = handleByUnitItems[self]
67
- return unitItemsNext, handle, unitInventorySize(handle) << 3
64
+ function UnitInventory.prototype.__ipairs(self)
65
+ local handle = handleByUnitInventory[self]
66
+ return unitInventoryNext, handle, 0
68
67
  end
69
68
  __TS__ObjectDefineProperty(
70
69
  Unit.prototype,
71
- "items",
70
+ "inventory",
72
71
  {get = function(self)
73
- local items = __TS__New(____exports.UnitItems, self.handle)
74
- rawset(self, "items", items)
75
- return items
72
+ local inventory = __TS__New(____exports.UnitInventory, self.handle)
73
+ rawset(self, "inventory", inventory)
74
+ return inventory
76
75
  end}
77
76
  )
78
77
  return ____exports
@@ -1,46 +1,31 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__New = ____lualib.__TS__New
3
3
  local ____exports = {}
4
- local ____player = require("core.types.player")
5
- local Player = ____player.Player
6
- local ____math = require("math")
7
- local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
8
- local MINIMUM_INTEGER = ____math.MINIMUM_INTEGER
9
4
  local ____local_2Dclient = require("engine.local-client")
10
5
  local LocalClient = ____local_2Dclient.LocalClient
11
6
  local ____unit = require("engine.internal.unit")
12
7
  local Unit = ____unit.Unit
13
8
  local ____event = require("event")
14
9
  local Event = ____event.Event
10
+ local ____synchronization = require("engine.synchronization")
11
+ local ObjectBus = ____synchronization.ObjectBus
15
12
  local mainSelectedUnitChangeEvent = __TS__New(Event)
16
13
  rawset(Unit, "mainSelectedUnitChangeEvent", mainSelectedUnitChangeEvent)
17
14
  local mainSelectedUnitByPlayer = {}
18
- local syncSlider = BlzCreateFrameByType(
19
- "SLIDER",
20
- "UnitSyncId",
21
- BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0),
22
- "",
23
- 0
15
+ local unitBus = __TS__New(
16
+ ObjectBus,
17
+ function(unit) return unit.syncId end,
18
+ function(syncId) return Unit:getBySyncId(syncId) end
24
19
  )
25
- BlzFrameSetMinMaxValue(syncSlider, MINIMUM_INTEGER, MAXIMUM_INTEGER)
26
20
  LocalClient.mainSelectedUnitChangeEvent:addListener(function()
27
- local ____opt_0 = LocalClient.mainSelectedUnit
28
- local syncId = ____opt_0 and ____opt_0.syncId
29
- BlzFrameSetValue(syncSlider, syncId or 0)
21
+ unitBus:send(LocalClient.mainSelectedUnit)
30
22
  end)
31
- local trg = CreateTrigger()
32
- BlzTriggerRegisterFrameEvent(trg, syncSlider, FRAMEEVENT_SLIDER_VALUE_CHANGED)
33
- TriggerAddAction(
34
- trg,
35
- function()
36
- local player = Player:of(GetTriggerPlayer())
37
- local mainSelectedUnit = Unit:getBySyncId(BlzGetTriggerFrameValue())
38
- if mainSelectedUnit ~= mainSelectedUnitByPlayer[player] then
39
- mainSelectedUnitByPlayer[player] = mainSelectedUnit
40
- Event.invoke(mainSelectedUnitChangeEvent, player)
41
- end
23
+ unitBus.event:addListener(function(player, unit)
24
+ if unit ~= mainSelectedUnitByPlayer[player] then
25
+ mainSelectedUnitByPlayer[player] = unit
26
+ Event.invoke(mainSelectedUnitChangeEvent, player)
42
27
  end
43
- )
28
+ end)
44
29
  rawset(
45
30
  Unit,
46
31
  "getMainSelectedOf",
@@ -0,0 +1,20 @@
1
+ /** @noSelfInFile */
2
+ import { Widget } from "../../../core/types/widget";
3
+ export declare const enum OrderType {
4
+ IMMEDIATE = 0,
5
+ POINT = 1,
6
+ TARGET = 2
7
+ }
8
+ declare module "../unit" {
9
+ interface Unit {
10
+ readonly currentOrderType: OrderType;
11
+ readonly currentOrderId: number;
12
+ readonly currentOrderStartTime: number;
13
+ readonly currentOrderStartX: number;
14
+ readonly currentOrderStartY: number;
15
+ readonly currentOrderTargetX: number;
16
+ readonly currentOrderTargetY: number;
17
+ readonly currentOrderTarget?: Widget;
18
+ issueOrder(...order: [orderType: OrderType.IMMEDIATE, orderId: number] | [orderType: OrderType.POINT, orderId: number, x: number, y: number] | [orderType: OrderType.TARGET, orderId: number, target: Widget]): boolean;
19
+ }
20
+ }
@@ -0,0 +1,136 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
+ local ____exports = {}
4
+ local ____attributes = require("attributes")
5
+ local attribute = ____attributes.attribute
6
+ local ____unit = require("engine.internal.unit")
7
+ local Unit = ____unit.Unit
8
+ local ____game = require("core.game")
9
+ local elapsedTime = ____game.elapsedTime
10
+ local getUnitCurrentOrder = GetUnitCurrentOrder
11
+ local issueImmediateOrderById = IssueImmediateOrderById
12
+ local issuePointOrderById = IssuePointOrderById
13
+ local issueTargetOrderById = IssueTargetOrderById
14
+ local unitLastOrderTypeAttribute = attribute()
15
+ local unitLastOrderIdAttribute = attribute()
16
+ local unitLastOrderStartTimeAttribute = attribute()
17
+ local unitLastOrderStartXAttribute = attribute()
18
+ local unitLastOrderStartYAttribute = attribute()
19
+ local unitLastOrderTargetXAttribute = attribute()
20
+ local unitLastOrderTargetYAttribute = attribute()
21
+ local unitLastOrderTargetAttribute = attribute()
22
+ Unit.onImmediateOrder:addListener(
23
+ 4,
24
+ function(unit, orderId)
25
+ unit[unitLastOrderTypeAttribute] = 0
26
+ unit[unitLastOrderIdAttribute] = orderId
27
+ unit[unitLastOrderStartTimeAttribute] = elapsedTime()
28
+ unit[unitLastOrderStartXAttribute] = unit.x
29
+ unit[unitLastOrderStartYAttribute] = unit.y
30
+ unit[unitLastOrderTargetXAttribute] = nil
31
+ unit[unitLastOrderTargetYAttribute] = nil
32
+ unit[unitLastOrderTargetAttribute] = nil
33
+ end
34
+ )
35
+ Unit.onPointOrder:addListener(
36
+ 4,
37
+ function(unit, orderId, x, y)
38
+ unit[unitLastOrderTypeAttribute] = 1
39
+ unit[unitLastOrderIdAttribute] = orderId
40
+ unit[unitLastOrderStartTimeAttribute] = elapsedTime()
41
+ unit[unitLastOrderStartXAttribute] = unit.x
42
+ unit[unitLastOrderStartYAttribute] = unit.y
43
+ unit[unitLastOrderTargetXAttribute] = x
44
+ unit[unitLastOrderTargetYAttribute] = y
45
+ unit[unitLastOrderTargetAttribute] = nil
46
+ end
47
+ )
48
+ Unit.onTargetOrder:addListener(
49
+ 4,
50
+ function(unit, orderId, target)
51
+ unit[unitLastOrderTypeAttribute] = 2
52
+ unit[unitLastOrderIdAttribute] = orderId
53
+ unit[unitLastOrderStartTimeAttribute] = elapsedTime()
54
+ unit[unitLastOrderStartXAttribute] = unit.x
55
+ unit[unitLastOrderStartYAttribute] = unit.y
56
+ unit[unitLastOrderTargetXAttribute] = target.x
57
+ unit[unitLastOrderTargetYAttribute] = target.y
58
+ unit[unitLastOrderTargetAttribute] = target
59
+ end
60
+ )
61
+ local function toUndefinedIfCurrentOrderDoesNotMatchLast(unit, value)
62
+ local currentOrderId = getUnitCurrentOrder(unit.handle)
63
+ local lastOrderId = unit[unitLastOrderIdAttribute]
64
+ local ____temp_0
65
+ if currentOrderId == lastOrderId or currentOrderId == orderId("patrolAI") and lastOrderId == orderId("patrol") then
66
+ ____temp_0 = value
67
+ else
68
+ ____temp_0 = nil
69
+ end
70
+ return ____temp_0
71
+ end
72
+ __TS__ObjectDefineProperty(
73
+ Unit.prototype,
74
+ "currentOrderType",
75
+ {get = function(self)
76
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderTypeAttribute]) or 0
77
+ end}
78
+ )
79
+ __TS__ObjectDefineProperty(
80
+ Unit.prototype,
81
+ "currentOrderId",
82
+ {get = function(self)
83
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderIdAttribute]) or 0
84
+ end}
85
+ )
86
+ __TS__ObjectDefineProperty(
87
+ Unit.prototype,
88
+ "currentOrderStartTime",
89
+ {get = function(self)
90
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderStartTimeAttribute]) or 0
91
+ end}
92
+ )
93
+ __TS__ObjectDefineProperty(
94
+ Unit.prototype,
95
+ "currentOrderStartX",
96
+ {get = function(self)
97
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderStartXAttribute]) or 0
98
+ end}
99
+ )
100
+ __TS__ObjectDefineProperty(
101
+ Unit.prototype,
102
+ "currentOrderStartY",
103
+ {get = function(self)
104
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderStartYAttribute]) or 0
105
+ end}
106
+ )
107
+ __TS__ObjectDefineProperty(
108
+ Unit.prototype,
109
+ "currentOrderTargetX",
110
+ {get = function(self)
111
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderTargetXAttribute]) or 0
112
+ end}
113
+ )
114
+ __TS__ObjectDefineProperty(
115
+ Unit.prototype,
116
+ "currentOrderTargetY",
117
+ {get = function(self)
118
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderTargetYAttribute]) or 0
119
+ end}
120
+ )
121
+ __TS__ObjectDefineProperty(
122
+ Unit.prototype,
123
+ "currentOrderTarget",
124
+ {get = function(self)
125
+ return toUndefinedIfCurrentOrderDoesNotMatchLast(self, self[unitLastOrderTargetAttribute])
126
+ end}
127
+ )
128
+ local issueOrderByType = {
129
+ [0] = issueImmediateOrderById,
130
+ [1] = issuePointOrderById,
131
+ [2] = function(unitHandle, orderId, widget) return issueTargetOrderById(unitHandle, orderId, widget.handle) end
132
+ }
133
+ Unit.prototype.issueOrder = function(self, orderType, orderId, xOrTarget, y)
134
+ return issueOrderByType[orderType](self.handle, orderId, xOrTarget, y)
135
+ end
136
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,11 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal For use by internal systems only.
4
+ ____exports.compiletimePseudoPassiveAbilityTypeIds = {}
5
+ ---
6
+ -- @internal For use by internal systems only.
7
+ ____exports.pseudoPassiveAbilityTypeIds = postcompile(function() return ____exports.compiletimePseudoPassiveAbilityTypeIds end)
8
+ ---
9
+ -- @internal For use by internal systems only.
10
+ ____exports.pseudoPassiveAbilityOrderTypeStringId = "channel"
11
+ return ____exports
@@ -0,0 +1,12 @@
1
+ /** @noSelfInFile */
2
+ import { Event } from "../../../event";
3
+ declare module "../unit" {
4
+ interface Unit {
5
+ readonly unitInRangeEvent: Record<number, Event<[unit: Unit, range: number, unitInRange: Unit]>>;
6
+ }
7
+ }
8
+ declare module "../unit" {
9
+ interface Unit {
10
+ readonly unitOutOfRangeEvent: Record<number, Event<[unit: Unit, range: number, unitOutOfRange: Unit]>>;
11
+ }
12
+ }
@@ -0,0 +1,90 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
3
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
4
+ local ____exports = {}
5
+ local ____event = require("event")
6
+ local Event = ____event.Event
7
+ local InitializingEvent = ____event.InitializingEvent
8
+ local TriggerEvent = ____event.TriggerEvent
9
+ local ____unit = require("engine.internal.unit")
10
+ local Unit = ____unit.Unit
11
+ local ____timer = require("core.types.timer")
12
+ local Timer = ____timer.Timer
13
+ local ____attributes = require("attributes")
14
+ local attribute = ____attributes.attribute
15
+ local ____linked_2Dmap = require("utility.linked-map")
16
+ local mutableLinkedMap = ____linked_2Dmap.mutableLinkedMap
17
+ local ____linked_2Dset = require("utility.linked-set")
18
+ local LinkedSet = ____linked_2Dset.LinkedSet
19
+ local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
20
+ local getTriggerUnit = GetTriggerUnit
21
+ local triggerRegisterUnitInRange = TriggerRegisterUnitInRange
22
+ local eventInvoke = Event.invoke
23
+ __TS__ObjectDefineProperty(
24
+ Unit.prototype,
25
+ "unitInRangeEvent",
26
+ {get = function(self)
27
+ local unit = self
28
+ local handle = self.handle
29
+ local unitInRangeEvent = setmetatable(
30
+ {},
31
+ {__index = function(self, value)
32
+ local event = __TS__New(
33
+ TriggerEvent,
34
+ function(trigger)
35
+ triggerRegisterUnitInRange(trigger, handle, value, nil)
36
+ end,
37
+ function() return unit, value, Unit:of(getTriggerUnit()) end
38
+ )
39
+ rawset(self, value, event)
40
+ return event
41
+ end}
42
+ )
43
+ rawset(self, "unitInRangeEvent", unitInRangeEvent)
44
+ return unitInRangeEvent
45
+ end}
46
+ )
47
+ local units = __TS__New(LinkedSet)
48
+ local unitsInRangeByRangeAttribute = attribute()
49
+ local function registerUnitOfRangeEvent(unit, range, unitInRange)
50
+ units:add(unit)
51
+ unit:getOrPut(unitsInRangeByRangeAttribute, mutableLinkedMap):getOrPut(range, mutableLinkedSet):add(unitInRange)
52
+ end
53
+ __TS__ObjectDefineProperty(
54
+ Unit.prototype,
55
+ "unitOutOfRangeEvent",
56
+ {get = function(self)
57
+ local unit = self
58
+ local unitOutOfRangeEvent = setmetatable(
59
+ {},
60
+ {__index = function(self, value)
61
+ local event = __TS__New(
62
+ InitializingEvent,
63
+ function()
64
+ unit.unitInRangeEvent[value]:addListener(999999, registerUnitOfRangeEvent)
65
+ end
66
+ )
67
+ rawset(self, value, event)
68
+ return event
69
+ end}
70
+ )
71
+ rawset(self, "unitOutOfRangeEvent", unitOutOfRangeEvent)
72
+ return unitOutOfRangeEvent
73
+ end}
74
+ )
75
+ Timer.onPeriod[1]:addListener(function()
76
+ for unit in pairs(units) do
77
+ local unitsInRangeByRange = unit[unitsInRangeByRangeAttribute]
78
+ if unitsInRangeByRange ~= nil then
79
+ for range, unitsInRange in pairs(unitsInRangeByRange) do
80
+ for unitInRange in pairs(unitsInRange) do
81
+ if unit:getDistanceTo(unitInRange) > range then
82
+ unitsInRange:remove(unitInRange)
83
+ eventInvoke(unit.unitOutOfRangeEvent[range], unit, range, unitInRange)
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end)
90
+ return ____exports