warscript 0.0.1-dev.8717dbb → 0.0.1-dev.87bdb89

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 (234) hide show
  1. package/attributes.d.ts +17 -0
  2. package/attributes.lua +23 -0
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +8 -1
  10. package/core/types/frame.lua +93 -1
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/handle.d.ts +2 -1
  13. package/core/types/handle.lua +5 -0
  14. package/core/types/image.d.ts +0 -1
  15. package/core/types/missile.d.ts +2 -2
  16. package/core/types/missile.lua +8 -2
  17. package/core/types/order.d.ts +1 -0
  18. package/core/types/order.lua +11 -1
  19. package/core/types/sound.d.ts +17 -24
  20. package/core/types/sound.lua +99 -24
  21. package/core/types/timer.d.ts +6 -7
  22. package/core/types/timer.lua +18 -21
  23. package/core/types/unit.lua +8 -0
  24. package/core/util.d.ts +1 -1
  25. package/core/util.lua +18 -1
  26. package/decl/index.d.ts +1 -0
  27. package/decl/native.d.ts +840 -786
  28. package/engine/ability.d.ts +1 -1
  29. package/engine/behavior.d.ts +10 -10
  30. package/engine/behavior.lua +6 -6
  31. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  32. package/engine/behaviour/ability/always-enabled.lua +31 -0
  33. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  34. package/engine/behaviour/ability/apply-buff.lua +32 -0
  35. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  36. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  37. package/engine/behaviour/ability/damage.d.ts +39 -11
  38. package/engine/behaviour/ability/damage.lua +83 -37
  39. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  40. package/engine/behaviour/ability/emulate-impact.lua +42 -0
  41. package/engine/behaviour/ability/heal.d.ts +33 -6
  42. package/engine/behaviour/ability/heal.lua +89 -10
  43. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  44. package/engine/behaviour/ability/instant-impact.lua +4 -15
  45. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  46. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  47. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  48. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  49. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  50. package/engine/behaviour/ability/restore-mana.lua +29 -0
  51. package/engine/behaviour/ability.d.ts +27 -4
  52. package/engine/behaviour/ability.lua +153 -18
  53. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  54. package/engine/behaviour/unit.d.ts +25 -2
  55. package/engine/behaviour/unit.lua +137 -0
  56. package/engine/buff.d.ts +103 -41
  57. package/engine/buff.lua +465 -212
  58. package/engine/game-map.d.ts +7 -0
  59. package/engine/game-map.lua +32 -0
  60. package/engine/internal/ability.d.ts +20 -13
  61. package/engine/internal/ability.lua +97 -76
  62. package/engine/internal/item/ability.lua +112 -4
  63. package/engine/internal/item+owner.lua +2 -2
  64. package/engine/internal/item.d.ts +7 -4
  65. package/engine/internal/item.lua +131 -28
  66. package/engine/internal/mechanics/ability-duration.lua +1 -1
  67. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  68. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  69. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  70. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  71. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  72. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  73. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  74. package/engine/internal/object-data/evasion-probability.lua +16 -0
  75. package/engine/internal/unit/ability.d.ts +15 -1
  76. package/engine/internal/unit/ability.lua +50 -14
  77. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  78. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  79. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  80. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  81. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  82. package/engine/internal/unit/allowed-targets.lua +9 -1
  83. package/engine/internal/unit/bonus.d.ts +11 -8
  84. package/engine/internal/unit/bonus.lua +23 -1
  85. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  86. package/engine/internal/unit/ignore-events-items.lua +5 -0
  87. package/engine/internal/unit/item.d.ts +24 -0
  88. package/engine/internal/unit/item.lua +78 -0
  89. package/engine/internal/unit/main-selected.d.ts +13 -0
  90. package/engine/internal/unit/main-selected.lua +51 -0
  91. package/engine/internal/unit+ability.lua +2 -2
  92. package/engine/internal/unit+damage.d.ts +2 -11
  93. package/engine/internal/unit+damage.lua +10 -14
  94. package/engine/internal/unit+spellSteal.lua +1 -2
  95. package/engine/internal/unit+transport.lua +4 -10
  96. package/engine/internal/unit-missile-launch.lua +25 -6
  97. package/engine/internal/unit.d.ts +84 -19
  98. package/engine/internal/unit.lua +540 -167
  99. package/engine/internal/utility.lua +12 -0
  100. package/engine/lightning.d.ts +12 -5
  101. package/engine/lightning.lua +48 -14
  102. package/engine/local-client.d.ts +7 -2
  103. package/engine/local-client.lua +82 -0
  104. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  105. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  106. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  107. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  108. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  109. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  110. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  111. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  112. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  113. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  114. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  115. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  116. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  117. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  118. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  119. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  120. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  121. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  122. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  123. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  124. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  125. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  126. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  127. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  128. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  129. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  130. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  131. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  132. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  133. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  134. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  135. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  136. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  137. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  138. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  139. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  140. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  141. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  142. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  143. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  144. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  145. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  146. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  147. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  148. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  149. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  150. package/engine/object-data/entry/ability-type/web.lua +52 -0
  151. package/engine/object-data/entry/ability-type.d.ts +19 -18
  152. package/engine/object-data/entry/ability-type.lua +89 -33
  153. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  154. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  155. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  156. package/engine/object-data/entry/buff-type.d.ts +6 -13
  157. package/engine/object-data/entry/buff-type.lua +13 -29
  158. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  159. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  160. package/engine/object-data/entry/item-type.d.ts +15 -2
  161. package/engine/object-data/entry/item-type.lua +93 -2
  162. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  163. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  164. package/engine/object-data/entry/sound-preset.lua +140 -0
  165. package/engine/object-data/entry/unit-type.d.ts +47 -5
  166. package/engine/object-data/entry/unit-type.lua +421 -74
  167. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  168. package/engine/object-data/entry/upgrade.d.ts +1 -2
  169. package/engine/object-data/entry/upgrade.lua +4 -4
  170. package/engine/object-data/entry.d.ts +18 -17
  171. package/engine/object-data/entry.lua +60 -32
  172. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  173. package/engine/object-field/ability.d.ts +26 -3
  174. package/engine/object-field/ability.lua +54 -1
  175. package/engine/object-field/unit.d.ts +46 -3
  176. package/engine/object-field/unit.lua +173 -7
  177. package/engine/object-field.d.ts +15 -7
  178. package/engine/object-field.lua +178 -81
  179. package/engine/random.d.ts +1 -0
  180. package/engine/random.lua +9 -0
  181. package/engine/standard/entries/buff-type.d.ts +3 -0
  182. package/engine/standard/entries/buff-type.lua +3 -0
  183. package/engine/standard/entries/sound-preset.d.ts +10 -0
  184. package/engine/standard/entries/sound-preset.lua +10 -0
  185. package/engine/standard/entries/unit-type.d.ts +39 -1
  186. package/engine/standard/entries/unit-type.lua +39 -1
  187. package/engine/standard/fields/ability.d.ts +3 -1
  188. package/engine/standard/fields/ability.lua +3 -1
  189. package/engine/text-tag.d.ts +12 -1
  190. package/engine/text-tag.lua +44 -10
  191. package/engine/unit.d.ts +3 -0
  192. package/engine/unit.lua +12 -2
  193. package/event.d.ts +2 -3
  194. package/event.lua +9 -5
  195. package/index.d.ts +1 -0
  196. package/index.lua +1 -0
  197. package/lualib_bundle.lua +146 -42
  198. package/math/vec2.d.ts +2 -9
  199. package/math.d.ts +0 -2
  200. package/net/socket.d.ts +7 -1
  201. package/net/socket.lua +45 -4
  202. package/network.d.ts +1 -0
  203. package/network.lua +3 -2
  204. package/objutil/ability.d.ts +0 -1
  205. package/objutil/buff.d.ts +0 -1
  206. package/objutil/buff.lua +2 -3
  207. package/objutil/object.d.ts +0 -1
  208. package/objutil/unit.d.ts +0 -1
  209. package/objutil/unit.lua +8 -0
  210. package/package.json +13 -14
  211. package/patch-lua.d.ts +0 -0
  212. package/patch-lua.lua +10 -0
  213. package/property.d.ts +55 -0
  214. package/property.lua +374 -0
  215. package/string.d.ts +30 -0
  216. package/string.lua +14 -0
  217. package/util/stream.d.ts +0 -1
  218. package/utility/arrays.d.ts +12 -5
  219. package/utility/arrays.lua +37 -3
  220. package/utility/bit-set.d.ts +0 -2
  221. package/utility/functions.d.ts +1 -0
  222. package/utility/functions.lua +1 -0
  223. package/utility/lazy.d.ts +2 -0
  224. package/utility/lazy.lua +14 -0
  225. package/utility/linked-set.d.ts +12 -3
  226. package/utility/linked-set.lua +8 -2
  227. package/utility/lua-maps.d.ts +4 -2
  228. package/utility/lua-maps.lua +16 -0
  229. package/utility/lua-sets.d.ts +2 -2
  230. package/utility/lua-sets.lua +3 -0
  231. package/utility/reflection.lua +11 -7
  232. package/utility/types.d.ts +1 -0
  233. package/core/mapbounds.d.ts +0 -8
  234. package/core/mapbounds.lua +0 -12
package/engine/random.lua CHANGED
@@ -1,9 +1,18 @@
1
1
  local ____exports = {}
2
2
  local ____math = require("math")
3
3
  local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
4
+ local PI = ____math.PI
4
5
  local getRandomInt = GetRandomInt
5
6
  local getRandomReal = GetRandomReal
7
+ local cos = math.cos
8
+ local sin = math.sin
9
+ local sqrt = math.sqrt
6
10
  ____exports.randomAngle = function() return getRandomReal(0, 360) end
7
11
  ____exports.randomInteger = function(m, n) return n ~= nil and getRandomInt(m, n) or getRandomInt(0, m or MAXIMUM_INTEGER) end
8
12
  ____exports.randomFloat = function(m, n) return n ~= nil and getRandomReal(m, n) or getRandomReal(0, m or MAXIMUM_INTEGER) end
13
+ ____exports.randomXY = function(centerX, centerY, range)
14
+ local r = range * sqrt(getRandomReal(0, 1))
15
+ local t = getRandomReal(0, 1) * 2 * PI
16
+ return centerX + r * cos(t), centerY + r * sin(t)
17
+ end
9
18
  return ____exports
@@ -0,0 +1,3 @@
1
+ /** @noSelfInFile */
2
+ import { StandardBuffTypeId } from "../../object-data/entry/buff-type";
3
+ export declare const CHEMICAL_RAGE_BUFF_TYPE_ID: StandardBuffTypeId;
@@ -0,0 +1,3 @@
1
+ local ____exports = {}
2
+ ____exports.CHEMICAL_RAGE_BUFF_TYPE_ID = fourCC("BNcr")
3
+ return ____exports
@@ -0,0 +1,10 @@
1
+ /** @noSelfInFile */
2
+ import { StandardSoundPresetId } from "../../object-data/entry/sound-preset";
3
+ export declare const ABOMINATION_PISSED_SOUND_PRESET_ID: StandardSoundPresetId;
4
+ export declare const ABOMINATION_READY_SOUND_PRESET_ID: StandardSoundPresetId;
5
+ export declare const ABOMINATION_WAR_CRY_SOUND_PRESET_ID: StandardSoundPresetId;
6
+ export declare const AXE_MEDIUM_CHOP_WOOD_SOUND_PRESET_ID: StandardSoundPresetId;
7
+ export declare const IMPALE_SOUND_PRESET_ID: StandardSoundPresetId;
8
+ export declare const IMPALE_HIT_SOUND_PRESET_ID: StandardSoundPresetId;
9
+ export declare const IMPALE_LAND_SOUND_PRESET_ID: StandardSoundPresetId;
10
+ export declare const IMPALE_CAST_SOUND_PRESET_ID: StandardSoundPresetId;
@@ -0,0 +1,10 @@
1
+ local ____exports = {}
2
+ ____exports.ABOMINATION_PISSED_SOUND_PRESET_ID = "AbominationPissed"
3
+ ____exports.ABOMINATION_READY_SOUND_PRESET_ID = "AbominationReady"
4
+ ____exports.ABOMINATION_WAR_CRY_SOUND_PRESET_ID = "AbominationWarcry"
5
+ ____exports.AXE_MEDIUM_CHOP_WOOD_SOUND_PRESET_ID = "AxeMediumChopWood"
6
+ ____exports.IMPALE_SOUND_PRESET_ID = "Impale"
7
+ ____exports.IMPALE_HIT_SOUND_PRESET_ID = "ImpaleHit"
8
+ ____exports.IMPALE_LAND_SOUND_PRESET_ID = "ImpaleLand"
9
+ ____exports.IMPALE_CAST_SOUND_PRESET_ID = "ImpaleCast"
10
+ return ____exports
@@ -9,11 +9,33 @@ export declare const RIFLEMAN_UNIT_TYPE_ID: StandardUnitTypeId;
9
9
  export declare const SIEGE_ENGINE_UNIT_TYPE_ID: StandardUnitTypeId;
10
10
  export declare const SORCERESS_UNIT_TYPE_ID: StandardUnitTypeId;
11
11
  export declare const SPELLBREAKER_UNIT_TYPE_ID: StandardUnitTypeId;
12
- export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
13
12
  export declare const ARCHMAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
13
+ export declare const BLOOD_MAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
14
+ export declare const MOUNTAIN_KING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
+ export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
+ export declare const ARCHER_HIGH_ELF_UNIT_TYPE_ID: StandardUnitTypeId;
14
17
  export declare const CAPTAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
+ export declare const SWORDSMAN_UNIT_TYPE_ID: StandardUnitTypeId;
19
+ export declare const ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
20
+ export declare const ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
21
+ export declare const ANTONIDAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
22
+ export declare const ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
23
  export declare const ARTHAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
24
  export declare const ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
25
+ export declare const DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
26
+ export declare const HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
27
+ export declare const JAINA_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
28
+ export declare const JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
29
+ export declare const KAEL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
30
+ export declare const KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
31
+ export declare const LORD_GARITHOS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
32
+ export declare const LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
33
+ export declare const MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
34
+ export declare const MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
35
+ export declare const SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
36
+ export declare const SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
37
+ export declare const THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
38
+ export declare const UTHER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
17
39
  export declare const BATRIDER_UNIT_TYPE_ID: StandardUnitTypeId;
18
40
  export declare const DEMOLISHER_UNIT_TYPE_ID: StandardUnitTypeId;
19
41
  export declare const GRUNT_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -25,7 +47,22 @@ export declare const SPIRIT_WALKER_UNIT_TYPE_ID: StandardUnitTypeId;
25
47
  export declare const TAUREN_UNIT_TYPE_ID: StandardUnitTypeId;
26
48
  export declare const WIND_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
27
49
  export declare const WITCH_DOCTOR_UNIT_TYPE_ID: StandardUnitTypeId;
50
+ export declare const ARCHER_UNIT_TYPE_ID: StandardUnitTypeId;
51
+ export declare const CHIMAERA_UNIT_TYPE_ID: StandardUnitTypeId;
52
+ export declare const DRUID_OF_THE_CLAW_UNIT_TYPE_ID: StandardUnitTypeId;
53
+ export declare const DRUID_OF_THE_TALON_UNIT_TYPE_ID: StandardUnitTypeId;
54
+ export declare const DRYAD_UNIT_TYPE_ID: StandardUnitTypeId;
55
+ export declare const FAERIE_DRAGON_UNIT_TYPE_ID: StandardUnitTypeId;
56
+ export declare const GLAIVE_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
57
+ export declare const HIPPOGRYPH_UNIT_TYPE_ID: StandardUnitTypeId;
58
+ export declare const HIPPOGRYPH_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
59
+ export declare const HUNTRESS_UNIT_TYPE_ID: StandardUnitTypeId;
60
+ export declare const MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
61
+ export declare const WISP_UNIT_TYPE_ID: StandardUnitTypeId;
28
62
  export declare const DEMON_HUNTER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
63
+ export declare const KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
64
+ export declare const MOON_PRIESTESS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
65
+ export declare const WARDEN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
29
66
  export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
30
67
  export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
31
68
  export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -61,6 +98,7 @@ export declare const WENDIGO_UNIT_TYPE_ID: StandardUnitTypeId;
61
98
  export declare const WENDIGO_SHAMAN_UNIT_TYPE_ID: StandardUnitTypeId;
62
99
  export declare const WILDKIN_UNIT_TYPE_ID: StandardUnitTypeId;
63
100
  export declare const WRAITH_UNIT_TYPE_ID: StandardUnitTypeId;
101
+ export declare const GOBLIN_LAND_MINE_UNIT_TYPE_ID: StandardUnitTypeId;
64
102
  export declare const CIRCLE_OF_POWER_UNIT_TYPE_ID: StandardUnitTypeId;
65
103
  export declare const CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID: StandardUnitTypeId;
66
104
  export declare const CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -8,11 +8,33 @@ ____exports.RIFLEMAN_UNIT_TYPE_ID = fourCC("hrif")
8
8
  ____exports.SIEGE_ENGINE_UNIT_TYPE_ID = fourCC("hmtt")
9
9
  ____exports.SORCERESS_UNIT_TYPE_ID = fourCC("hsor")
10
10
  ____exports.SPELLBREAKER_UNIT_TYPE_ID = fourCC("hspt")
11
- ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
12
11
  ____exports.ARCHMAGE_HERO_UNIT_TYPE_ID = fourCC("Hamg")
12
+ ____exports.BLOOD_MAGE_HERO_UNIT_TYPE_ID = fourCC("Hblm")
13
+ ____exports.MOUNTAIN_KING_HERO_UNIT_TYPE_ID = fourCC("Hmkg")
14
+ ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
15
+ ____exports.ARCHER_HIGH_ELF_UNIT_TYPE_ID = fourCC("nhea")
13
16
  ____exports.CAPTAIN_UNIT_TYPE_ID = fourCC("hcth")
17
+ ____exports.SWORDSMAN_UNIT_TYPE_ID = fourCC("hhes")
18
+ ____exports.ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID = fourCC("Hapm")
19
+ ____exports.ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID = fourCC("Hssa")
20
+ ____exports.ANTONIDAS_HERO_UNIT_TYPE_ID = fourCC("Hant")
21
+ ____exports.ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID = fourCC("Hgam")
14
22
  ____exports.ARTHAS_HERO_UNIT_TYPE_ID = fourCC("Hart")
15
23
  ____exports.ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID = fourCC("Harf")
24
+ ____exports.DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID = fourCC("Hdgo")
25
+ ____exports.HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID = fourCC("Hhkl")
26
+ ____exports.JAINA_HERO_UNIT_TYPE_ID = fourCC("Hjai")
27
+ ____exports.JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID = fourCC("Hjnd")
28
+ ____exports.KAEL_HERO_UNIT_TYPE_ID = fourCC("Hkal")
29
+ ____exports.KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID = fourCC("Haah")
30
+ ____exports.LORD_GARITHOS_HERO_UNIT_TYPE_ID = fourCC("Hlgr")
31
+ ____exports.LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID = fourCC("Hpb1")
32
+ ____exports.MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID = fourCC("Hmgd")
33
+ ____exports.MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID = fourCC("Hmbr")
34
+ ____exports.SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID = fourCC("Hpb2")
35
+ ____exports.SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID = fourCC("Hvwd")
36
+ ____exports.THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID = fourCC("Hddt")
37
+ ____exports.UTHER_HERO_UNIT_TYPE_ID = fourCC("Huth")
16
38
  ____exports.BATRIDER_UNIT_TYPE_ID = fourCC("otbr")
17
39
  ____exports.DEMOLISHER_UNIT_TYPE_ID = fourCC("ocat")
18
40
  ____exports.GRUNT_UNIT_TYPE_ID = fourCC("ogru")
@@ -24,7 +46,22 @@ ____exports.SPIRIT_WALKER_UNIT_TYPE_ID = fourCC("ospw")
24
46
  ____exports.TAUREN_UNIT_TYPE_ID = fourCC("otau")
25
47
  ____exports.WIND_RIDER_UNIT_TYPE_ID = fourCC("owyv")
26
48
  ____exports.WITCH_DOCTOR_UNIT_TYPE_ID = fourCC("odoc")
49
+ ____exports.ARCHER_UNIT_TYPE_ID = fourCC("earc")
50
+ ____exports.CHIMAERA_UNIT_TYPE_ID = fourCC("echm")
51
+ ____exports.DRUID_OF_THE_CLAW_UNIT_TYPE_ID = fourCC("edoc")
52
+ ____exports.DRUID_OF_THE_TALON_UNIT_TYPE_ID = fourCC("edot")
53
+ ____exports.DRYAD_UNIT_TYPE_ID = fourCC("edry")
54
+ ____exports.FAERIE_DRAGON_UNIT_TYPE_ID = fourCC("efdr")
55
+ ____exports.GLAIVE_THROWER_UNIT_TYPE_ID = fourCC("ebal")
56
+ ____exports.HIPPOGRYPH_UNIT_TYPE_ID = fourCC("ehip")
57
+ ____exports.HIPPOGRYPH_RIDER_UNIT_TYPE_ID = fourCC("ehpr")
58
+ ____exports.HUNTRESS_UNIT_TYPE_ID = fourCC("esen")
59
+ ____exports.MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID = fourCC("emtg")
60
+ ____exports.WISP_UNIT_TYPE_ID = fourCC("ewsp")
27
61
  ____exports.DEMON_HUNTER_HERO_UNIT_TYPE_ID = fourCC("Edem")
62
+ ____exports.KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID = fourCC("Ekee")
63
+ ____exports.MOON_PRIESTESS_HERO_UNIT_TYPE_ID = fourCC("Emoo")
64
+ ____exports.WARDEN_HERO_UNIT_TYPE_ID = fourCC("Ewar")
28
65
  ____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
29
66
  ____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
30
67
  ____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
@@ -60,6 +97,7 @@ ____exports.WENDIGO_UNIT_TYPE_ID = fourCC("nwen")
60
97
  ____exports.WENDIGO_SHAMAN_UNIT_TYPE_ID = fourCC("nwns")
61
98
  ____exports.WILDKIN_UNIT_TYPE_ID = fourCC("nowb")
62
99
  ____exports.WRAITH_UNIT_TYPE_ID = fourCC("ngh2")
100
+ ____exports.GOBLIN_LAND_MINE_UNIT_TYPE_ID = fourCC("nglm")
63
101
  ____exports.CIRCLE_OF_POWER_UNIT_TYPE_ID = fourCC("ncop")
64
102
  ____exports.CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID = fourCC("ncp2")
65
103
  ____exports.CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID = fourCC("ncp3")
@@ -16,7 +16,7 @@ export declare const LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD: AbilityIntege
16
16
  export declare const HERO_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
17
17
  export declare const ITEM_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
18
18
  export declare const CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
19
- export declare const ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
19
+ export declare const MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
20
20
  export declare const NAME_ABILITY_STRING_FIELD: AbilityStringField & symbol;
21
21
  export declare const ICON_ACTIVATED_ABILITY_STRING_FIELD: AbilityStringField & symbol;
22
22
  export declare const ICON_RESEARCH_ABILITY_STRING_FIELD: AbilityStringField & symbol;
@@ -687,6 +687,8 @@ export declare const DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD: Abilit
687
687
  export declare const ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD: AbilityBooleanLevelField & symbol;
688
688
  export declare const ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD: AbilityStringLevelField & symbol;
689
689
  export declare const CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
690
+ export declare const CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
691
+ export declare const CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
690
692
  export declare const TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
691
693
  export declare const TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
692
694
  export declare const TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
@@ -27,7 +27,7 @@ ____exports.LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD = AbilityIntegerField:c
27
27
  ____exports.HERO_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aher"))
28
28
  ____exports.ITEM_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aite"))
29
29
  ____exports.CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("achd"))
30
- ____exports.ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
30
+ ____exports.MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
31
31
  ____exports.NAME_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("anam"))
32
32
  ____exports.ICON_ACTIVATED_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("auar"))
33
33
  ____exports.ICON_RESEARCH_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("arar"))
@@ -698,6 +698,8 @@ ____exports.DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBoolean
698
698
  ____exports.ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBooleanLevelField:create(fourCC("Ntm4"))
699
699
  ____exports.ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD = AbilityStringLevelField:create(fourCC("aart"))
700
700
  ____exports.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("acat"))
701
+ ____exports.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("acap"))
702
+ ____exports.CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("aca1"))
701
703
  ____exports.TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("atat"))
702
704
  ____exports.TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata0"))
703
705
  ____exports.TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata1"))
@@ -1,5 +1,7 @@
1
1
  /** @noSelfInFile */
2
2
  import { Color } from "../core/types/color";
3
+ import { Unit } from "./internal/unit";
4
+ import { AbstractDestroyable, Destructor } from "../destroyable";
3
5
  export type TextTagPreset = {
4
6
  fadepoint: number;
5
7
  lifespan: number;
@@ -10,9 +12,16 @@ export type TextTagPreset = {
10
12
  velocityY: number;
11
13
  color: Color;
12
14
  };
13
- export declare class TextTag {
15
+ declare const enum TextTagPropertyKey {
16
+ UNIT = 100,
17
+ CONFIGURATION = 101
18
+ }
19
+ export declare class TextTag extends AbstractDestroyable {
14
20
  private readonly handle;
21
+ private [TextTagPropertyKey.UNIT]?;
22
+ private [TextTagPropertyKey.CONFIGURATION]?;
15
23
  private constructor();
24
+ protected onDestroy(): Destructor;
16
25
  static BASE: Readonly<TextTagPreset>;
17
26
  static BASH: Readonly<TextTagPreset>;
18
27
  static CRITICAL_STRIKE: Readonly<TextTagPreset>;
@@ -22,4 +31,6 @@ export declare class TextTag {
22
31
  static MISS: Readonly<TextTagPreset>;
23
32
  static SHADOW_STRIKE: Readonly<TextTagPreset>;
24
33
  static flash(configuration: Readonly<TextTagPreset>, text: string, x: number, y: number, z?: number): void;
34
+ static create(configuration: Readonly<TextTagPreset>, text: string, unit: Unit): TextTag;
25
35
  }
36
+ export {};
@@ -1,9 +1,15 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__New = ____lualib.__TS__New
3
5
  local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
4
6
  local ____exports = {}
5
7
  local ____color = require("core.types.color")
6
8
  local Color = ____color.Color
9
+ local ____timer = require("core.types.timer")
10
+ local Timer = ____timer.Timer
11
+ local ____destroyable = require("destroyable")
12
+ local AbstractDestroyable = ____destroyable.AbstractDestroyable
7
13
  local createTextTag = CreateTextTag
8
14
  local destroyTextTag = DestroyTextTag
9
15
  local setTextTagText = SetTextTagText
@@ -18,16 +24,7 @@ local setTextTagAge = SetTextTagAge
18
24
  local setTextTagLifespan = SetTextTagLifespan
19
25
  local setTextTagFadepoint = SetTextTagFadepoint
20
26
  local DEFAULT_FONT_SIZE = 0.024
21
- ____exports.TextTag = __TS__Class()
22
- local TextTag = ____exports.TextTag
23
- TextTag.name = "TextTag"
24
- function TextTag.prototype.____constructor(self, handle)
25
- self.handle = handle
26
- end
27
- function TextTag.flash(self, configuration, text, x, y, z)
28
- local textTag = createTextTag()
29
- setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
30
- setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
27
+ local function applyConfiguration(textTag, configuration)
31
28
  setTextTagFadepoint(textTag, configuration.fadepoint)
32
29
  setTextTagLifespan(textTag, configuration.lifespan)
33
30
  local color = configuration.color
@@ -42,6 +39,38 @@ function TextTag.flash(self, configuration, text, x, y, z)
42
39
  setTextTagPermanent(textTag, false)
43
40
  setTextTagVisibility(textTag, true)
44
41
  end
42
+ local unitTextTags = setmetatable({}, {__mode = "k"})
43
+ ____exports.TextTag = __TS__Class()
44
+ local TextTag = ____exports.TextTag
45
+ TextTag.name = "TextTag"
46
+ __TS__ClassExtends(TextTag, AbstractDestroyable)
47
+ function TextTag.prototype.____constructor(self, handle)
48
+ AbstractDestroyable.prototype.____constructor(self)
49
+ self.handle = handle
50
+ end
51
+ function TextTag.prototype.onDestroy(self)
52
+ destroyTextTag(self.handle)
53
+ unitTextTags[self] = nil
54
+ return AbstractDestroyable.prototype.onDestroy(self)
55
+ end
56
+ function TextTag.flash(self, configuration, text, x, y, z)
57
+ local textTag = createTextTag()
58
+ setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
59
+ setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
60
+ applyConfiguration(textTag, configuration)
61
+ end
62
+ function TextTag.create(self, configuration, text, unit)
63
+ local handle = createTextTag()
64
+ setTextTagText(handle, text, DEFAULT_FONT_SIZE)
65
+ setTextTagPosUnit(handle, unit.handle, configuration.offsetZ)
66
+ applyConfiguration(handle, configuration)
67
+ setTextTagPermanent(handle, true)
68
+ local textTag = __TS__New(____exports.TextTag, handle)
69
+ textTag[100] = unit.handle
70
+ textTag[101] = configuration
71
+ unitTextTags[textTag] = true
72
+ return textTag
73
+ end
45
74
  TextTag.BASE = {
46
75
  fadepoint = 2,
47
76
  lifespan = 3,
@@ -106,4 +135,9 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
106
135
  lifespan = 5
107
136
  }
108
137
  )
138
+ Timer.onPeriod[1 / 64]:addListener(function()
139
+ for textTag in pairs(unitTextTags) do
140
+ setTextTagPosUnit(textTag.handle, textTag[100], textTag[101].offsetZ)
141
+ end
142
+ end)
109
143
  return ____exports
package/engine/unit.d.ts CHANGED
@@ -4,6 +4,7 @@ import "./internal/unit/ability";
4
4
  import "./internal/unit/allowed-targets";
5
5
  import "./internal/unit/buff";
6
6
  import "./internal/unit/expiration-timer";
7
+ import "./internal/unit/item";
7
8
  import "./internal/unit+ability";
8
9
  import "./internal/unit+damage";
9
10
  import "./internal/unit+rally";
@@ -15,6 +16,8 @@ import "./internal/unit-missile-launch";
15
16
  import "./internal/unit/ghost-counter";
16
17
  import "./internal/unit/invulnerability-counter";
17
18
  import "./internal/unit/detach-missiles";
19
+ import "./internal/unit/main-selected";
20
+ import "./internal/unit/add-item-to-slot-init";
18
21
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
19
22
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
20
23
  export * from "./internal/unit+damage";
package/engine/unit.lua CHANGED
@@ -4,6 +4,7 @@ require("engine.internal.unit.ability")
4
4
  require("engine.internal.unit.allowed-targets")
5
5
  require("engine.internal.unit.buff")
6
6
  require("engine.internal.unit.expiration-timer")
7
+ require("engine.internal.unit.item")
7
8
  require("engine.internal.unit+ability")
8
9
  require("engine.internal.unit+damage")
9
10
  require("engine.internal.unit+rally")
@@ -15,11 +16,12 @@ require("engine.internal.unit-missile-launch")
15
16
  require("engine.internal.unit.ghost-counter")
16
17
  require("engine.internal.unit.invulnerability-counter")
17
18
  require("engine.internal.unit.detach-missiles")
19
+ require("engine.internal.unit.main-selected")
20
+ require("engine.internal.unit.add-item-to-slot-init")
18
21
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
19
22
  do
20
23
  local ____unit = require("engine.internal.unit")
21
- local Unit = ____unit.Unit
22
- ____exports.Unit = Unit
24
+ ____exports.Unit = ____unit.Unit
23
25
  end
24
26
  do
25
27
  local ____export = require("engine.internal.unit+damage")
@@ -29,4 +31,12 @@ do
29
31
  end
30
32
  end
31
33
  end
34
+ do
35
+ local ____export = require("engine.internal.unit+rally")
36
+ for ____exportKey, ____exportValue in pairs(____export) do
37
+ if ____exportKey ~= "default" then
38
+ ____exports[____exportKey] = ____exportValue
39
+ end
40
+ end
41
+ end
32
42
  return ____exports
package/event.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
- export type EventListener<T extends any[]> = (...args: T) => void;
2
+ export type EventListener<T extends any[]> = (this: void, ...args: T) => void;
4
3
  export declare const enum EventListenerPriority {
5
4
  LOWEST = 0,
6
5
  LOW = 1,
@@ -38,7 +37,7 @@ export type EventDispatchTable<EventType extends Event<any>, KeyType extends num
38
37
  };
39
38
  export type DispatchingEvent<P extends any[], T extends Event<P> = Event<P>, S extends Event<P> = Event<P>> = T & EventDispatchTable<S>;
40
39
  export declare const createDispatchingEvent: {
41
- <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (...args: EventParameters<T>) => number, ...createEvent: [...(Event<any> extends S ? [(() => S)?] : [() => S])]): DispatchingEvent<EventParameters<T>, T>;
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>;
42
41
  };
43
42
  export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
44
43
  constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
package/event.lua CHANGED
@@ -146,8 +146,13 @@ function TriggerEvent.prototype.____constructor(self, r, c)
146
146
  end
147
147
  )
148
148
  end
149
- ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, createEvent)
150
- local actualCreateEvent = createEvent or (function() return __TS__New(____exports.Event) end)
149
+ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, invokeEvent, createEvent)
150
+ if invokeEvent == nil then
151
+ invokeEvent = ____exports.Event.invoke
152
+ end
153
+ if createEvent == nil then
154
+ createEvent = function() return __TS__New(____exports.Event) end
155
+ end
151
156
  local initialized = false
152
157
  return setmetatable(
153
158
  {},
@@ -157,17 +162,16 @@ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, creat
157
162
  return underlyingEvent[id]
158
163
  end
159
164
  if not initialized then
160
- local invoke = ____exports.Event.invoke
161
165
  underlyingEvent:addListener(function(...)
162
166
  local key = extractKey(...)
163
167
  local event = rawget(self, key)
164
168
  if event then
165
- invoke(event, ...)
169
+ invokeEvent(event, ...)
166
170
  end
167
171
  end)
168
172
  initialized = true
169
173
  end
170
- local event = actualCreateEvent()
174
+ local event = createEvent()
171
175
  rawset(self, id, event)
172
176
  return event
173
177
  end,
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /** @noSelfInFile */
2
2
  import "./types";
3
+ import "./patch-lua";
3
4
  import "./patch-lualib";
4
5
  import "./patch-natives";
5
6
  import "./global/math";
package/index.lua CHANGED
@@ -1,5 +1,6 @@
1
1
  local ____exports = {}
2
2
  require("types")
3
+ require("patch-lua")
3
4
  require("patch-lualib")
4
5
  require("patch-natives")
5
6
  require("global.math")