warscript 0.0.1-dev.b530e1f → 0.0.1-dev.b9f7033

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 (264) 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/binarywriter.lua +12 -0
  6. package/config.d.ts +5 -0
  7. package/config.lua +10 -0
  8. package/core/types/effect.d.ts +14 -6
  9. package/core/types/effect.lua +131 -35
  10. package/core/types/frame.d.ts +8 -1
  11. package/core/types/frame.lua +117 -22
  12. package/core/types/group.d.ts +0 -1
  13. package/core/types/handle.d.ts +2 -1
  14. package/core/types/handle.lua +5 -0
  15. package/core/types/image.d.ts +0 -1
  16. package/core/types/missile.d.ts +2 -2
  17. package/core/types/missile.lua +8 -2
  18. package/core/types/player.lua +3 -1
  19. package/core/types/playerCamera.d.ts +2 -0
  20. package/core/types/playerCamera.lua +123 -5
  21. package/core/types/sound.d.ts +17 -24
  22. package/core/types/sound.lua +99 -24
  23. package/core/types/tileCell.d.ts +9 -0
  24. package/core/types/tileCell.lua +92 -0
  25. package/core/types/timer.d.ts +8 -8
  26. package/core/types/timer.lua +39 -23
  27. package/core/types/unit.lua +8 -0
  28. package/core/util.d.ts +1 -1
  29. package/core/util.lua +18 -1
  30. package/decl/index.d.ts +1 -0
  31. package/decl/native.d.ts +846 -790
  32. package/engine/ability.d.ts +1 -1
  33. package/engine/behavior.d.ts +15 -10
  34. package/engine/behavior.lua +112 -33
  35. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  36. package/engine/behaviour/ability/always-enabled.lua +31 -0
  37. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  38. package/engine/behaviour/ability/apply-buff.lua +32 -0
  39. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  40. package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
  41. package/engine/behaviour/ability/damage.d.ts +39 -11
  42. package/engine/behaviour/ability/damage.lua +83 -37
  43. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  44. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  45. package/engine/behaviour/ability/heal.d.ts +33 -6
  46. package/engine/behaviour/ability/heal.lua +89 -10
  47. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  48. package/engine/behaviour/ability/instant-impact.lua +4 -15
  49. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  50. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  51. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  52. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  53. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  54. package/engine/behaviour/ability/restore-mana.lua +29 -0
  55. package/engine/behaviour/ability.d.ts +27 -4
  56. package/engine/behaviour/ability.lua +152 -26
  57. package/engine/behaviour/unit/stun-immunity.d.ts +5 -4
  58. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  59. package/engine/behaviour/unit.d.ts +40 -2
  60. package/engine/behaviour/unit.lua +208 -0
  61. package/engine/buff.d.ts +104 -44
  62. package/engine/buff.lua +453 -215
  63. package/engine/game-map.d.ts +7 -0
  64. package/engine/game-map.lua +32 -0
  65. package/engine/internal/ability.d.ts +24 -15
  66. package/engine/internal/ability.lua +129 -85
  67. package/engine/internal/item/ability.lua +162 -4
  68. package/engine/internal/item+owner.lua +12 -6
  69. package/engine/internal/item.d.ts +8 -7
  70. package/engine/internal/item.lua +153 -51
  71. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  72. package/engine/internal/mechanics/ability-duration.lua +3 -1
  73. package/engine/internal/mechanics/cast-ability.d.ts +2 -0
  74. package/engine/internal/mechanics/cast-ability.lua +86 -0
  75. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  76. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  77. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  78. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  79. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  80. package/engine/internal/misc/frame-coordinates.lua +21 -0
  81. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  82. package/engine/internal/misc/get-terrain-z.lua +11 -0
  83. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  84. package/engine/internal/misc/player-local-handle.lua +5 -0
  85. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  86. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  87. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  88. package/engine/internal/object-data/evasion-probability.lua +16 -0
  89. package/engine/internal/unit/ability.d.ts +45 -1
  90. package/engine/internal/unit/ability.lua +98 -14
  91. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  92. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  93. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  94. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  95. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  96. package/engine/internal/unit/allowed-targets.lua +9 -1
  97. package/engine/internal/unit/bonus.d.ts +11 -8
  98. package/engine/internal/unit/bonus.lua +23 -1
  99. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  100. package/engine/internal/unit/detach-missiles.lua +30 -0
  101. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  102. package/engine/internal/unit/ignore-events-items.lua +5 -0
  103. package/engine/internal/unit/item.d.ts +24 -0
  104. package/engine/internal/unit/item.lua +78 -0
  105. package/engine/internal/unit/main-selected.d.ts +13 -0
  106. package/engine/internal/unit/main-selected.lua +51 -0
  107. package/engine/internal/unit/order.d.ts +20 -0
  108. package/engine/internal/unit/order.lua +136 -0
  109. package/engine/internal/unit+ability.lua +12 -3
  110. package/engine/internal/unit+damage.d.ts +2 -11
  111. package/engine/internal/unit+damage.lua +10 -14
  112. package/engine/internal/unit+spellSteal.lua +1 -2
  113. package/engine/internal/unit+transport.lua +4 -10
  114. package/engine/internal/unit-missile-launch.lua +33 -7
  115. package/engine/internal/unit.d.ts +89 -24
  116. package/engine/internal/unit.lua +594 -206
  117. package/engine/internal/utility.lua +12 -0
  118. package/engine/lightning.d.ts +12 -5
  119. package/engine/lightning.lua +48 -14
  120. package/engine/local-client.d.ts +7 -2
  121. package/engine/local-client.lua +82 -0
  122. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  123. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  124. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  125. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  126. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  127. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  128. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  129. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  130. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  131. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  132. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  133. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  134. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  135. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  136. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  137. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  138. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  139. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  140. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  141. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  142. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  143. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  144. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  145. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  146. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  147. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  148. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  149. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  150. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  151. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  152. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  153. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  154. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  155. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  156. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  157. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  158. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  159. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  160. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  161. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  162. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  163. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  164. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  165. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  166. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  167. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  168. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  169. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  170. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  171. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  172. package/engine/object-data/entry/ability-type/web.lua +52 -0
  173. package/engine/object-data/entry/ability-type.d.ts +19 -18
  174. package/engine/object-data/entry/ability-type.lua +90 -36
  175. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  176. package/engine/object-data/entry/buff-type/applicable.lua +39 -102
  177. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  178. package/engine/object-data/entry/buff-type.d.ts +6 -13
  179. package/engine/object-data/entry/buff-type.lua +13 -29
  180. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  181. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  182. package/engine/object-data/entry/item-type.d.ts +15 -2
  183. package/engine/object-data/entry/item-type.lua +93 -2
  184. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  185. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  186. package/engine/object-data/entry/sound-preset.lua +140 -0
  187. package/engine/object-data/entry/unit-type.d.ts +61 -5
  188. package/engine/object-data/entry/unit-type.lua +511 -62
  189. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  190. package/engine/object-data/entry/upgrade.d.ts +1 -2
  191. package/engine/object-data/entry/upgrade.lua +4 -4
  192. package/engine/object-data/entry.d.ts +18 -17
  193. package/engine/object-data/entry.lua +60 -32
  194. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  195. package/engine/object-field/ability.d.ts +33 -8
  196. package/engine/object-field/ability.lua +61 -1
  197. package/engine/object-field/unit.d.ts +57 -2
  198. package/engine/object-field/unit.lua +207 -4
  199. package/engine/object-field.d.ts +17 -5
  200. package/engine/object-field.lua +201 -97
  201. package/engine/random.d.ts +10 -0
  202. package/engine/random.lua +22 -0
  203. package/engine/standard/entries/buff-type.d.ts +3 -0
  204. package/engine/standard/entries/buff-type.lua +3 -0
  205. package/engine/standard/entries/sound-preset.d.ts +10 -0
  206. package/engine/standard/entries/sound-preset.lua +10 -0
  207. package/engine/standard/entries/unit-type.d.ts +42 -1
  208. package/engine/standard/entries/unit-type.lua +42 -1
  209. package/engine/standard/fields/ability.d.ts +3 -1
  210. package/engine/standard/fields/ability.lua +3 -1
  211. package/engine/standard/fields/unit.d.ts +4 -0
  212. package/engine/standard/fields/unit.lua +7 -0
  213. package/engine/text-tag.d.ts +36 -2
  214. package/engine/text-tag.lua +249 -10
  215. package/engine/unit.d.ts +5 -0
  216. package/engine/unit.lua +14 -2
  217. package/event.d.ts +2 -3
  218. package/event.lua +9 -5
  219. package/global/vec2.lua +1 -0
  220. package/index.d.ts +1 -0
  221. package/index.lua +1 -0
  222. package/lualib_bundle.lua +146 -42
  223. package/math/vec2.d.ts +2 -9
  224. package/math.d.ts +0 -2
  225. package/net/socket.d.ts +7 -1
  226. package/net/socket.lua +45 -4
  227. package/network.d.ts +1 -0
  228. package/network.lua +3 -2
  229. package/objutil/ability.d.ts +0 -1
  230. package/objutil/buff.d.ts +0 -1
  231. package/objutil/buff.lua +2 -3
  232. package/objutil/object.d.ts +0 -1
  233. package/objutil/unit.d.ts +0 -1
  234. package/objutil/unit.lua +8 -0
  235. package/package.json +13 -14
  236. package/patch-lua.d.ts +0 -0
  237. package/patch-lua.lua +10 -0
  238. package/patch-lualib.lua +1 -1
  239. package/property.d.ts +55 -0
  240. package/property.lua +374 -0
  241. package/string.d.ts +30 -0
  242. package/string.lua +14 -0
  243. package/util/stream.d.ts +0 -1
  244. package/utility/arrays.d.ts +12 -5
  245. package/utility/arrays.lua +37 -3
  246. package/utility/bit-set.d.ts +0 -2
  247. package/utility/callback-array.d.ts +13 -0
  248. package/utility/callback-array.lua +46 -0
  249. package/utility/functions.d.ts +8 -0
  250. package/utility/functions.lua +13 -0
  251. package/utility/lazy.d.ts +2 -0
  252. package/utility/lazy.lua +14 -0
  253. package/utility/linked-set.d.ts +12 -3
  254. package/utility/linked-set.lua +8 -2
  255. package/utility/lua-maps.d.ts +16 -4
  256. package/utility/lua-maps.lua +53 -2
  257. package/utility/lua-sets.d.ts +3 -2
  258. package/utility/lua-sets.lua +7 -0
  259. package/utility/reflection.lua +11 -7
  260. package/utility/types.d.ts +3 -2
  261. package/core/mapbounds.d.ts +0 -8
  262. package/core/mapbounds.lua +0 -12
  263. package/core/types/order.d.ts +0 -25
  264. package/core/types/order.lua +0 -55
@@ -15,13 +15,20 @@ local Event = ____event.Event
15
15
  local TriggerEvent = ____event.TriggerEvent
16
16
  local ____timer = require("core.types.timer")
17
17
  local Timer = ____timer.Timer
18
+ local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
19
+ local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
20
+ local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
21
+ local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
22
+ local ____playerCamera = require("core.types.playerCamera")
23
+ local frameCoordinatesToWorld = ____playerCamera.frameCoordinatesToWorld
24
+ local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
25
+ local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
26
+ local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
18
27
  local frameClick = BlzFrameClick
19
28
  local frameGetEnable = BlzFrameGetEnable
20
29
  local frameIsVisible = BlzFrameIsVisible
21
30
  local frameSetEnable = BlzFrameSetEnable
22
31
  local frameSetScale = BlzFrameSetScale
23
- local getCameraTargetPositionX = GetCameraTargetPositionX
24
- local getCameraTargetPositionY = GetCameraTargetPositionY
25
32
  local ____rawget = _G.rawget
26
33
  local rawset = _G.rawset
27
34
  local invoke = Event.invoke
@@ -62,8 +69,10 @@ local function updateBorders()
62
69
  local width4by3 = (w - h / 600 * 800) / 2
63
70
  local pxtodpi = 0.6 / h
64
71
  BlzFrameSetAbsPoint(leftBorder, FRAMEPOINT_TOPLEFT, -width4by3 * pxtodpi, 0.6)
72
+ BlzFrameSetScale(leftBorder, 1)
65
73
  BlzFrameSetSize(leftBorder, 0.001, 0.6)
66
74
  BlzFrameSetAbsPoint(rightBorder, FRAMEPOINT_TOPRIGHT, (-width4by3 + w) * pxtodpi, 0.6)
75
+ BlzFrameSetScale(rightBorder, 1)
67
76
  BlzFrameSetSize(rightBorder, 0.001, 0.6)
68
77
  end
69
78
  local worldFrame = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
@@ -120,6 +129,7 @@ do
120
129
  FramePoint.BOTTOM = FRAMEPOINT_BOTTOM
121
130
  FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
122
131
  end
132
+ local tooltipByFrame = setmetatable({}, {__mode = "k"})
123
133
  ____exports.Frame = __TS__Class()
124
134
  local Frame = ____exports.Frame
125
135
  Frame.name = "Frame"
@@ -240,6 +250,7 @@ function Frame.prototype.setTextColor(self, color)
240
250
  end
241
251
  function Frame.prototype.setTooltip(self, tooltip)
242
252
  BlzFrameSetTooltip(self.handle, tooltip.handle)
253
+ tooltipByFrame[self] = tooltip
243
254
  end
244
255
  function Frame.prototype.setMinMaxValue(self, minValue, maxValue)
245
256
  BlzFrameSetMinMaxValue(self.handle, minValue, maxValue)
@@ -267,7 +278,16 @@ function Frame.createSimple(self, name, parent, createContext)
267
278
  ))
268
279
  end
269
280
  function Frame.create(self, name, parent, priority, createContext)
270
- return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
281
+ if parent == ____exports.Frame.CONSOLE_UI_BACKDROP then
282
+ local helper = ____exports.Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD.handle
283
+ BlzFrameSetScale(helper, 1)
284
+ local frame = BlzCreateFrame(name, helper, priority or 0, createContext or 0)
285
+ BlzFrameSetScale(helper, ____exports.Frame.uiScale)
286
+ BlzFrameSetParent(frame, ____exports.Frame.CONSOLE_UI_BACKDROP.handle)
287
+ return self:of(frame)
288
+ else
289
+ return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
290
+ end
271
291
  end
272
292
  function Frame.createByType(self, typeName, name, parent, inherits, createContext)
273
293
  return self:of(BlzCreateFrameByType(
@@ -293,9 +313,20 @@ end
293
313
  Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
294
314
  Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
295
315
  Frame.CONSOLE_UI_BACKDROP = ____exports.Frame:byName("ConsoleUIBackdrop")
316
+ Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD = ____exports.Frame:createByType("FRAME", "ConsoleUIBackdropUIScaleHelperChild", ____exports.Frame.CONSOLE_UI_BACKDROP)
317
+ Frame.CONSOLE_TOP_BAR = ____exports.Frame:byName("ConsoleTopBar")
318
+ Frame.CONSOLE_BOTTOM_BAR = ____exports.Frame:byName("ConsoleBottomBar")
296
319
  Frame.WORLD = ____exports.Frame:byOrigin(ORIGIN_FRAME_WORLD_FRAME)
297
320
  Frame.CHAT = ____exports.Frame:byOrigin(ORIGIN_FRAME_CHAT_MSG)
298
321
  Frame.TIME_OF_DAY_CLOCK = ____exports.Frame.GAME_UI:getChild(5):getChild(0)
322
+ Frame.SIMPLE_FRAME_TEST_CHILD = ____exports.Frame:createByType("SIMPLEFRAME", "SimpleFrameTestParent", ____exports.Frame.CONSOLE_UI)
323
+ __TS__ObjectDefineProperty(
324
+ Frame,
325
+ "uiScale",
326
+ {get = function(self)
327
+ return ____exports.Frame.CONSOLE_BOTTOM_BAR.width / 0.8
328
+ end}
329
+ )
299
330
  __TS__ObjectDefineProperty(
300
331
  Frame,
301
332
  "leftBorder",
@@ -320,27 +351,21 @@ __TS__ObjectDefineProperty(
320
351
  Frame,
321
352
  "minX",
322
353
  {get = function(self)
323
- local w = BlzGetLocalClientWidth()
324
- local h = BlzGetLocalClientHeight()
325
- local width4by3 = (w - h / 600 * 800) / 2
326
- local pxtodpi = 0.6 / h
327
- return -width4by3 * pxtodpi
354
+ local minX = getFrameMinXMaxX()
355
+ return minX
328
356
  end}
329
357
  )
330
358
  __TS__ObjectDefineProperty(
331
359
  Frame,
332
360
  "maxX",
333
361
  {get = function(self)
334
- local w = BlzGetLocalClientWidth()
335
- local h = BlzGetLocalClientHeight()
336
- local width4by3 = (w - h / 600 * 800) / 2
337
- local pxtodpi = 0.6 / h
338
- return (-width4by3 + w) * pxtodpi
362
+ local ____, maxX = getFrameMinXMaxX()
363
+ return maxX
339
364
  end}
340
365
  )
341
366
  Frame.centerX = 0.4
342
- Frame.minY = 0
343
- Frame.maxY = 0.6
367
+ Frame.minY = FRAME_MIN_Y
368
+ Frame.maxY = FRAME_MAX_Y
344
369
  Frame.centerY = 0.3
345
370
  __TS__SetDescriptor(
346
371
  Frame.prototype,
@@ -597,6 +622,62 @@ __TS__SetDescriptor(
597
622
  end},
598
623
  true
599
624
  )
625
+ __TS__SetDescriptor(
626
+ Frame.prototype,
627
+ "mouseEnterLocalEvent",
628
+ {get = function(self)
629
+ local event = __TS__New(Event)
630
+ if not (tooltipByFrame[self] ~= nil) then
631
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
632
+ local tooltip = ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent == self and ____exports.Frame:createByType("SIMPLEFRAME", "", ____exports.Frame.CONSOLE_UI) or ____exports.Frame:createByType("FRAME", "", ____exports.Frame.GAME_UI)
633
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
634
+ self:setTooltip(tooltip)
635
+ end
636
+ local isMouseInside = false
637
+ Timer.onPeriod[1 / 64]:addListener(function()
638
+ local tooltip = tooltipByFrame[self]
639
+ if tooltip and tooltip.visible then
640
+ if not isMouseInside then
641
+ isMouseInside = true
642
+ Event.invoke(event)
643
+ end
644
+ else
645
+ isMouseInside = false
646
+ end
647
+ end)
648
+ rawset(self, "mouseEnterLocalEvent", event)
649
+ return event
650
+ end},
651
+ true
652
+ )
653
+ __TS__SetDescriptor(
654
+ Frame.prototype,
655
+ "mouseLeaveLocalEvent",
656
+ {get = function(self)
657
+ local event = __TS__New(Event)
658
+ if not (tooltipByFrame[self] ~= nil) then
659
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
660
+ local tooltip = ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent == self and ____exports.Frame:createByType("SIMPLEFRAME", "", ____exports.Frame.CONSOLE_UI) or ____exports.Frame:createByType("FRAME", "", ____exports.Frame.GAME_UI)
661
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
662
+ self:setTooltip(tooltip)
663
+ end
664
+ local isMouseInside = false
665
+ Timer.onPeriod[1 / 64]:addListener(function()
666
+ local tooltip = tooltipByFrame[self]
667
+ if tooltip and tooltip.visible then
668
+ isMouseInside = true
669
+ else
670
+ if isMouseInside then
671
+ isMouseInside = false
672
+ Event.invoke(event)
673
+ end
674
+ end
675
+ end)
676
+ rawset(self, "mouseLeaveLocalEvent", event)
677
+ return event
678
+ end},
679
+ true
680
+ )
600
681
  __TS__SetDescriptor(
601
682
  Frame.prototype,
602
683
  "popupMenuItemChangeEvent",
@@ -699,6 +780,18 @@ __TS__SetDescriptor(
699
780
  end},
700
781
  true
701
782
  )
783
+ __TS__SetDescriptor(
784
+ Frame.prototype,
785
+ "children",
786
+ {get = function(self)
787
+ local children = {}
788
+ for i = 0, self:getChildrenCount() - 1 do
789
+ children[i + 1] = self:getChild(i)
790
+ end
791
+ return children
792
+ end},
793
+ true
794
+ )
702
795
  __TS__ObjectDefineProperty(
703
796
  Frame,
704
797
  "onKeyPress",
@@ -846,16 +939,19 @@ __TS__ObjectDefineProperty(
846
939
  local event = __TS__New(Event)
847
940
  local syncX = 0
848
941
  local syncY = 0
849
- local syncCamX = getCameraTargetPositionX()
850
- local syncCamY = getCameraTargetPositionY()
942
+ local syncFrameX = 0
943
+ local syncFrameY = 0
851
944
  local lastX = syncX
852
945
  local lastY = syncY
853
946
  self.onMouseMove:addListener(function(player, x, y)
854
947
  if player.isLocal then
855
948
  syncX = x
856
949
  syncY = y
857
- syncCamX = getCameraTargetPositionX()
858
- syncCamY = getCameraTargetPositionY()
950
+ syncFrameX, syncFrameY = worldCoordinatesToFrame(
951
+ x,
952
+ y,
953
+ getTerrainZ(x, y)
954
+ )
859
955
  lastX = x
860
956
  lastY = y
861
957
  invoke(event, x, y)
@@ -865,9 +961,8 @@ __TS__ObjectDefineProperty(
865
961
  if syncX == 0 and syncY == 0 then
866
962
  return
867
963
  end
868
- local x = syncX + (getCameraTargetPositionX() - syncCamX)
869
- local y = syncY + (getCameraTargetPositionY() - syncCamY)
870
- if x ~= lastX or y ~= lastY then
964
+ local x, y, ____, isDefinite = frameCoordinatesToWorld(syncFrameX, syncFrameY)
965
+ if isDefinite and (x ~= lastX or y ~= lastY) then
871
966
  lastX = x
872
967
  lastY = y
873
968
  invoke(event, x, y)
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Widget } from "./widget";
4
3
  import { Unit } from "../../engine/internal/unit";
@@ -1,5 +1,6 @@
1
1
  /** @noSelfInFile */
2
2
  import { Event } from "../../event";
3
+ import { AttributesHolder } from "../../attributes";
3
4
  export type HandleConstructor<H extends jhandle, T extends Handle<H>, Args extends any[]> = new (handle: H, ...args: Args) => T;
4
5
  export type HandleDestructor = {
5
6
  readonly __handleDestructor: unique symbol;
@@ -11,7 +12,7 @@ type NoOverride = {
11
12
  declare const enum HandlePropertyKey {
12
13
  STATE = 0
13
14
  }
14
- export declare class Handle<H extends jhandle, DestroyParameters extends any[] = []> implements Destroyable {
15
+ export declare class Handle<H extends jhandle, DestroyParameters extends any[] = []> extends AttributesHolder implements Destroyable {
15
16
  readonly handle: H;
16
17
  private [HandlePropertyKey.STATE]?;
17
18
  private onDestroyEvent?;
@@ -1,5 +1,6 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
3
4
  local __TS__New = ____lualib.__TS__New
4
5
  local __TS__Delete = ____lualib.__TS__Delete
5
6
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
@@ -12,13 +13,17 @@ local getClass = ____reflection.getClass
12
13
  local getSuperclass = ____reflection.getSuperclass
13
14
  local ____exception = require("exception")
14
15
  local IllegalStateException = ____exception.IllegalStateException
16
+ local ____attributes = require("attributes")
17
+ local AttributesHolder = ____attributes.AttributesHolder
15
18
  local getHandleId = GetHandleId
16
19
  local onCreateEventByHandleConstructor = {}
17
20
  local onDestroyEventByHandleConstructor = {}
18
21
  ____exports.Handle = __TS__Class()
19
22
  local Handle = ____exports.Handle
20
23
  Handle.name = "Handle"
24
+ __TS__ClassExtends(Handle, AttributesHolder)
21
25
  function Handle.prototype.____constructor(self, handle)
26
+ AttributesHolder.prototype.____constructor(self)
22
27
  self[0] = 0
23
28
  local id = getHandleId(handle)
24
29
  local clazz = self.constructor
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Handle, HandleDestructor } from "./handle";
4
3
  import { Color } from "./color";
@@ -5,7 +5,7 @@ export declare class Missile implements Destroyable {
5
5
  readonly retarget: (this: void, target: Unit | Vec2) => void;
6
6
  private readonly update;
7
7
  protected constructor(effect: jeffect, retarget: (this: void, target: Unit | Vec2) => void, update: (this: Missile) => boolean);
8
- static launch(config: Readonly<{
8
+ static launch<T extends any[]>(config: Readonly<{
9
9
  art: string;
10
10
  scale?: number;
11
11
  acceleration?: number;
@@ -15,7 +15,7 @@ export declare class Missile implements Destroyable {
15
15
  maxSpeed?: number;
16
16
  sourceOffset?: Vec2;
17
17
  targetOffset?: Vec2;
18
- }>, source: Unit | Vec2, target: Unit | Vec2, onArrival: (missile: Missile, success: boolean) => void): Missile;
18
+ }>, source: Unit | Vec2, target: Unit | Vec2, onArrival: (missile: Missile, success: boolean, ...parameters: T) => void, ...parameters: T): Missile;
19
19
  destroy(): void;
20
20
  }
21
21
  export declare namespace Missile {
@@ -41,7 +41,8 @@ function Missile.prototype.____constructor(self, effect, retarget, update)
41
41
  end
42
42
  head = self
43
43
  end
44
- function Missile.launch(self, config, source, target, onArrival)
44
+ function Missile.launch(self, config, source, target, onArrival, ...)
45
+ local parameters = {...}
45
46
  local ____opt_0 = config.sourceOffset
46
47
  local offsetX = ____opt_0 and ____opt_0.x or 0
47
48
  local ____opt_2 = config.sourceOffset
@@ -142,7 +143,12 @@ function Missile.launch(self, config, source, target, onArrival)
142
143
  visualPositionArcY = currentVisualTargetY
143
144
  visualPositionArcZ = currentVisualTargetZ
144
145
  retarget = false
145
- safeCall(onArrival, self, true)
146
+ safeCall(
147
+ onArrival,
148
+ self,
149
+ true,
150
+ table.unpack(parameters)
151
+ )
146
152
  return not retarget
147
153
  end
148
154
  if arcVSpeed ~= 0 and (currentTargetX ~= initialTargetX or currentTargetY ~= initialTargetY) then
@@ -21,6 +21,8 @@ local ____exception = require("exception")
21
21
  local IllegalStateException = ____exception.IllegalStateException
22
22
  local ____math = require("math")
23
23
  local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
24
+ local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
25
+ local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
24
26
  local getPlayerColor = GetPlayerColor
25
27
  local getPlayerName = GetPlayerName
26
28
  local getPlayerTechCount = GetPlayerTechCount
@@ -249,7 +251,7 @@ Player.all = (function()
249
251
  end
250
252
  return all
251
253
  end)()
252
- Player["local"] = ____exports.Player:of(GetLocalPlayer())
254
+ Player["local"] = ____exports.Player:of(PLAYER_LOCAL_HANDLE)
253
255
  Player.neutralPassive = ____exports.Player.all[PLAYER_NEUTRAL_PASSIVE + 1]
254
256
  Player.neutralAggressive = ____exports.Player.all[PLAYER_NEUTRAL_AGGRESSIVE + 1]
255
257
  Player.neutralVictim = ____exports.Player.all[bj_PLAYER_NEUTRAL_VICTIM + 1]
@@ -1,4 +1,5 @@
1
1
  /** @noSelfInFile */
2
+ import type { Unit } from "../../engine/internal/unit";
2
3
  export declare class PlayerCamera {
3
4
  private readonly player;
4
5
  private readonly isLocal;
@@ -28,5 +29,6 @@ export declare class PlayerCamera {
28
29
  get roll(): number;
29
30
  set roll(v: number);
30
31
  reset(): void;
32
+ static isUnitInView(unit: Unit): boolean;
31
33
  static of(player: jplayer): PlayerCamera;
32
34
  }
@@ -3,33 +3,52 @@ local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__New = ____lualib.__TS__New
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local ____exports = {}
6
+ local ____timer = require("core.types.timer")
7
+ local Timer = ____timer.Timer
8
+ local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
9
+ local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
10
+ local ____preconditions = require("utility.preconditions")
11
+ local check = ____preconditions.check
12
+ local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
13
+ local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
14
+ local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
15
+ local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
16
+ local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
17
+ local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
6
18
  local getHandleId = GetHandleId
7
19
  local setCameraField = SetCameraField
8
20
  local getCameraField = GetCameraField
9
21
  local setCameraPosition = SetCameraPosition
22
+ local getCameraEyePositionX = GetCameraEyePositionX
23
+ local getCameraEyePositionY = GetCameraEyePositionY
24
+ local getCameraEyePositionZ = GetCameraEyePositionZ
10
25
  local getCameraTargetPositionX = GetCameraTargetPositionX
11
26
  local getCameraTargetPositionY = GetCameraTargetPositionY
12
27
  local resetToGameCamera = ResetToGameCamera
28
+ local cos = math.cos
13
29
  local deg = math.deg
14
- local localPlayer = GetLocalPlayer()
30
+ local sin = math.sin
31
+ local sqrt = math.sqrt
15
32
  local memoized = {}
16
33
  ____exports.PlayerCamera = __TS__Class()
17
34
  local PlayerCamera = ____exports.PlayerCamera
18
35
  PlayerCamera.name = "PlayerCamera"
19
36
  function PlayerCamera.prototype.____constructor(self, player)
20
37
  local id = getHandleId(player)
21
- if memoized[id] then
22
- error("Double-constructor run player camera!")
23
- end
38
+ check(memoized[id] == nil)
24
39
  memoized[id] = self
25
40
  self.player = player
26
- self.isLocal = player == localPlayer
41
+ self.isLocal = player == PLAYER_LOCAL_HANDLE
27
42
  end
28
43
  function PlayerCamera.prototype.reset(self)
29
44
  if self.isLocal then
30
45
  resetToGameCamera(0)
31
46
  end
32
47
  end
48
+ function PlayerCamera.isUnitInView(self, unit)
49
+ local ____, ____, isInView = ____exports.worldCoordinatesToFrame(unit.x, unit.y, unit.z)
50
+ return isInView
51
+ end
33
52
  function PlayerCamera.of(self, player)
34
53
  return memoized[getHandleId(player)] or __TS__New(____exports.PlayerCamera, player)
35
54
  end
@@ -159,4 +178,103 @@ __TS__SetDescriptor(
159
178
  },
160
179
  true
161
180
  )
181
+ local cameraEyeX = 0
182
+ local cameraEyeY = 0
183
+ local cameraEyeZ = 0
184
+ local cameraAngleOfAttack = 0
185
+ local cameraAngleOfAttackCos = 0
186
+ local cameraAngleOfAttackSin = 0
187
+ local cameraRotation = 0
188
+ local cameraRotationCos = 0
189
+ local cameraRotationSin = 0
190
+ local cameraAngleOfAttackCosRotationCos = 0
191
+ local cameraAngleOfAttackCosRotationSin = 0
192
+ local cameraAngleOfAttackSinRotationCos = 0
193
+ local cameraAngleOfAttackSinRotationSin = 0
194
+ local yCenterScreenShift = 0
195
+ local scaleFactor = 0
196
+ local frameMinX = 0
197
+ local frameMaxX = 0
198
+ local isCameraViewPrecalculated = false
199
+ local function precalculateCameraView()
200
+ cameraEyeX = getCameraEyePositionX()
201
+ cameraEyeY = getCameraEyePositionY()
202
+ cameraEyeZ = getCameraEyePositionZ()
203
+ cameraAngleOfAttack = getCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK)
204
+ cameraAngleOfAttackCos = cos(cameraAngleOfAttack)
205
+ cameraAngleOfAttackSin = sin(cameraAngleOfAttack)
206
+ cameraRotation = getCameraField(CAMERA_FIELD_ROTATION)
207
+ cameraRotationCos = cos(cameraRotation)
208
+ cameraRotationSin = sin(cameraRotation)
209
+ cameraAngleOfAttackCosRotationCos = cameraAngleOfAttackCos * cameraRotationCos
210
+ cameraAngleOfAttackCosRotationSin = cameraAngleOfAttackCos * cameraRotationSin
211
+ cameraAngleOfAttackSinRotationCos = cameraAngleOfAttackSin * cameraRotationCos
212
+ cameraAngleOfAttackSinRotationSin = cameraAngleOfAttackSin * cameraRotationSin
213
+ yCenterScreenShift = 0.1284 * cameraAngleOfAttackCos
214
+ local cameraFieldOfView = getCameraField(CAMERA_FIELD_FIELD_OF_VIEW)
215
+ scaleFactor = 0.0524 * cameraFieldOfView ^ 3 - 0.0283 * cameraFieldOfView ^ 2 + 1.061 * cameraFieldOfView
216
+ frameMinX, frameMaxX = getFrameMinXMaxX()
217
+ isCameraViewPrecalculated = true
218
+ end
219
+ Timer.onPeriod[1 / 64]:addListener(
220
+ 4,
221
+ function()
222
+ isCameraViewPrecalculated = false
223
+ end
224
+ )
225
+ ---
226
+ -- @internal For use by internal systems only.
227
+ ____exports.worldCoordinatesToFrame = function(x, y, z)
228
+ if not isCameraViewPrecalculated then
229
+ precalculateCameraView()
230
+ end
231
+ local dx = x - cameraEyeX
232
+ local dy = y - cameraEyeY
233
+ local dz = z - cameraEyeZ
234
+ local xPrime = scaleFactor * (-cameraAngleOfAttackCosRotationCos * dx - cameraAngleOfAttackCosRotationSin * dy - cameraAngleOfAttackSin * dz)
235
+ local frameX = 0.4 + (cameraRotationCos * dy - cameraRotationSin * dx) / xPrime
236
+ local frameY = 0.42625 - yCenterScreenShift + (cameraAngleOfAttackSinRotationCos * dx + cameraAngleOfAttackSinRotationSin * dy - cameraAngleOfAttackCos * dz) / xPrime
237
+ return frameX, frameY, xPrime < 0 and frameX >= frameMinX and frameX <= frameMaxX and frameY >= FRAME_MIN_Y and frameY <= FRAME_MAX_Y
238
+ end
239
+ ---
240
+ -- @internal For use by internal systems only.
241
+ ____exports.frameCoordinatesToWorld = function(x, y)
242
+ if not isCameraViewPrecalculated then
243
+ precalculateCameraView()
244
+ end
245
+ local a = (x - 0.4) * scaleFactor
246
+ local b = (0.42625 - yCenterScreenShift - y) * scaleFactor
247
+ local nx = 1 / sqrt(1 + a * a + b * b)
248
+ local ny = sqrt(1 - (1 + b * b) * nx * nx)
249
+ local nz = sqrt(1 - nx * nx - ny * ny)
250
+ if a > 0 then
251
+ ny = -ny
252
+ end
253
+ if b < 0 then
254
+ nz = -nz
255
+ end
256
+ local nxPrime = cameraAngleOfAttackCosRotationCos * nx - cameraRotationSin * ny + cameraAngleOfAttackSinRotationCos * nz
257
+ local nyPrime = cameraAngleOfAttackCosRotationSin * nx + cameraRotationCos * ny + cameraAngleOfAttackSinRotationSin * nz
258
+ local nzPrime = -cameraAngleOfAttackSin * nx + cameraAngleOfAttackCos * nz
259
+ local zGuess = getTerrainZ(cameraEyeX, cameraEyeY)
260
+ local xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
261
+ local yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
262
+ local zWorld = getTerrainZ(xGuess, yGuess)
263
+ local deltaZ = zWorld - zGuess
264
+ zGuess = zWorld
265
+ local zWorldOld = zWorld
266
+ local deltaZOld = deltaZ
267
+ local i = 0
268
+ while (deltaZ > 1 or deltaZ < -1) and i < 50 do
269
+ xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
270
+ yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
271
+ zWorld = getTerrainZ(xGuess, yGuess)
272
+ deltaZ = zWorld - zGuess
273
+ zGuess = (deltaZOld * zWorld - deltaZ * zWorldOld) / (deltaZOld - deltaZ)
274
+ zWorldOld = zWorld
275
+ deltaZOld = deltaZ
276
+ i = i + 1
277
+ end
278
+ return xGuess, yGuess, zWorld, i < 50
279
+ end
162
280
  return ____exports
@@ -1,6 +1,7 @@
1
1
  /** @noSelfInFile */
2
2
  import { Handle, HandleDestructor } from "./handle";
3
3
  import { Unit } from "./unit";
4
+ import { SoundEax } from "../../engine/object-data/auxiliary/sound-eax";
4
5
  export declare enum SoundChannel {
5
6
  General = 0,
6
7
  UnitSelection = 1,
@@ -18,16 +19,7 @@ export declare enum SoundChannel {
18
19
  Birth = 13,
19
20
  Fire = 14
20
21
  }
21
- export declare enum SoundEax {
22
- Default = "DefaultEAXON",
23
- Acknowledgements = "HeroAcksEAX",
24
- Environment = "DoodadsEAX",
25
- Drums = "KotoDrumsEAX",
26
- Attacks = "CombatSoundsEAX",
27
- Abilities = "SpellsEAX",
28
- Missiles = "MissilesEAX"
29
- }
30
- export type SoundPreset = Readonly<{
22
+ export type SoundSettings = Readonly<{
31
23
  channel?: SoundChannel;
32
24
  eax?: SoundEax;
33
25
  fadeInRate?: number;
@@ -36,19 +28,19 @@ export type SoundPreset = Readonly<{
36
28
  volume?: number;
37
29
  pitch?: number;
38
30
  }>;
39
- export type Sound3DPreset = SoundPreset & Readonly<{
31
+ export type Sound3DSettings = SoundSettings & Readonly<{
40
32
  stopWhenOutOfRange?: boolean;
41
33
  minDistance?: number;
42
34
  maxDistance?: number;
43
35
  distanceCutoff?: number;
44
36
  }>;
45
- export declare namespace SoundPreset {
46
- const UI: SoundPreset;
47
- const Music: SoundPreset;
48
- const Attack: Sound3DPreset;
49
- const Ability: Sound3DPreset;
50
- const AbilityLooping: Sound3DPreset;
51
- const Missile: Sound3DPreset;
37
+ export declare namespace SoundSettings {
38
+ const UI: SoundSettings;
39
+ const Music: SoundSettings;
40
+ const Attack: Sound3DSettings;
41
+ const Ability: Sound3DSettings;
42
+ const AbilityLooping: Sound3DSettings;
43
+ const Missile: Sound3DSettings;
52
44
  }
53
45
  export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
54
46
  private _volume?;
@@ -58,12 +50,13 @@ export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
58
50
  start(milliseconds?: number): void;
59
51
  stop(fadeOut?: boolean): void;
60
52
  restart(milliseconds?: number): void;
61
- static play(fileName: string, preset: SoundPreset): void;
62
- static create(fileName: string, preset: SoundPreset): Sound;
53
+ static play(fileName: string, preset: SoundSettings): void;
54
+ static create(fileName: string, preset: SoundSettings): Sound;
63
55
  }
64
56
  export declare class Sound3D extends Sound {
65
- static playAtPosition(fileName: string, preset: Sound3DPreset, x?: number, y?: number, z?: number): void;
66
- static playOnUnit(fileName: string, preset: Sound3DPreset, unit: Unit): void;
67
- static createAtPosition(fileName: string, preset: Sound3DPreset, x?: number, y?: number, z?: number): Sound3D;
68
- static createOnUnit(fileName: string, preset: Sound3DPreset, unit: Unit): Sound3D;
57
+ static playAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): void;
58
+ static playOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): void;
59
+ static playFromLabel(label: string, preset: Sound3DSettings, ...positionOrUnit: [Unit] | [number, number, number?]): void;
60
+ static createAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): Sound3D;
61
+ static createOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): Sound3D;
69
62
  }