warscript 0.0.1-dev.0eca47c → 0.0.1-dev.0efff64

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 (277) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  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 +6 -0
  10. package/core/types/frame.lua +162 -23
  11. package/core/types/item.d.ts +1 -0
  12. package/core/types/item.lua +1 -0
  13. package/core/types/player.d.ts +16 -0
  14. package/core/types/player.lua +60 -15
  15. package/core/types/playerCamera.d.ts +2 -0
  16. package/core/types/playerCamera.lua +123 -5
  17. package/core/types/sound.d.ts +17 -24
  18. package/core/types/sound.lua +100 -25
  19. package/core/types/tileCell.d.ts +11 -1
  20. package/core/types/tileCell.lua +97 -0
  21. package/core/types/timer.d.ts +9 -8
  22. package/core/types/timer.lua +45 -23
  23. package/core/util.d.ts +1 -1
  24. package/core/util.lua +18 -1
  25. package/decl/native.d.ts +846 -790
  26. package/destroyable.d.ts +1 -0
  27. package/destroyable.lua +9 -0
  28. package/engine/behavior.d.ts +16 -3
  29. package/engine/behavior.lua +233 -73
  30. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  31. package/engine/behaviour/ability/always-enabled.lua +31 -0
  32. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  33. package/engine/behaviour/ability/apply-buff.lua +36 -4
  34. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  35. package/engine/behaviour/ability/damage.d.ts +42 -11
  36. package/engine/behaviour/ability/damage.lua +89 -37
  37. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  38. package/engine/behaviour/ability/emulate-impact.lua +44 -0
  39. package/engine/behaviour/ability/heal.d.ts +33 -6
  40. package/engine/behaviour/ability/heal.lua +89 -10
  41. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  42. package/engine/behaviour/ability/instant-impact.lua +4 -19
  43. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  44. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  45. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  46. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  47. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  48. package/engine/behaviour/ability/restore-mana.lua +6 -6
  49. package/engine/behaviour/ability.d.ts +28 -7
  50. package/engine/behaviour/ability.lua +137 -43
  51. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  52. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  53. package/engine/behaviour/unit.d.ts +45 -2
  54. package/engine/behaviour/unit.lua +289 -6
  55. package/engine/buff.d.ts +158 -51
  56. package/engine/buff.lua +704 -260
  57. package/engine/game-map.d.ts +7 -0
  58. package/engine/game-map.lua +32 -0
  59. package/engine/internal/ability.d.ts +23 -14
  60. package/engine/internal/ability.lua +128 -85
  61. package/engine/internal/item/ability.lua +162 -4
  62. package/engine/internal/item/fields.d.ts +12 -0
  63. package/engine/internal/item/fields.lua +33 -0
  64. package/engine/internal/item+owner.lua +12 -6
  65. package/engine/internal/item.d.ts +16 -19
  66. package/engine/internal/item.lua +174 -94
  67. package/engine/internal/mechanics/ability-duration.lua +1 -1
  68. package/engine/internal/mechanics/cast-ability.lua +6 -3
  69. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  70. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  71. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  72. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  73. package/engine/internal/misc/frame-coordinates.lua +21 -0
  74. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  75. package/engine/internal/misc/get-terrain-z.lua +11 -0
  76. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  77. package/engine/internal/misc/player-local-handle.lua +5 -0
  78. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  79. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  80. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  81. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  82. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  83. package/engine/internal/object-data/evasion-probability.lua +16 -0
  84. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  85. package/engine/internal/object-data/health-bonus.lua +16 -0
  86. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  87. package/engine/internal/object-data/mana-bonus.lua +16 -0
  88. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  89. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  90. package/engine/internal/unit/ability.d.ts +45 -1
  91. package/engine/internal/unit/ability.lua +128 -17
  92. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  93. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  94. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  95. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  96. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  97. package/engine/internal/unit/allowed-targets.lua +9 -1
  98. package/engine/internal/unit/attributes.d.ts +17 -0
  99. package/engine/internal/unit/attributes.lua +46 -0
  100. package/engine/internal/unit/bonus.d.ts +12 -2
  101. package/engine/internal/unit/bonus.lua +56 -4
  102. package/engine/internal/unit/fly-height.d.ts +7 -0
  103. package/engine/internal/unit/fly-height.lua +20 -0
  104. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  105. package/engine/internal/unit/ignore-events-items.lua +5 -0
  106. package/engine/internal/unit/interrupts.d.ts +12 -0
  107. package/engine/internal/unit/interrupts.lua +28 -0
  108. package/engine/internal/unit/item.d.ts +24 -0
  109. package/engine/internal/unit/item.lua +78 -0
  110. package/engine/internal/unit/main-selected.d.ts +13 -0
  111. package/engine/internal/unit/main-selected.lua +36 -0
  112. package/engine/internal/unit/order.d.ts +20 -0
  113. package/engine/internal/unit/order.lua +136 -0
  114. package/engine/internal/unit/range-event.d.ts +12 -0
  115. package/engine/internal/unit/range-event.lua +90 -0
  116. package/engine/internal/unit/scale.d.ts +7 -0
  117. package/engine/internal/unit/scale.lua +20 -0
  118. package/engine/internal/unit+ability.lua +12 -3
  119. package/engine/internal/unit+bonus.lua +3 -3
  120. package/engine/internal/unit+damage.d.ts +2 -11
  121. package/engine/internal/unit+damage.lua +10 -14
  122. package/engine/internal/unit+spellSteal.lua +1 -2
  123. package/engine/internal/unit+transport.lua +4 -10
  124. package/engine/internal/unit-missile-launch.lua +70 -13
  125. package/engine/internal/unit.d.ts +64 -30
  126. package/engine/internal/unit.lua +490 -285
  127. package/engine/internal/utility.lua +12 -0
  128. package/engine/lightning.d.ts +12 -5
  129. package/engine/lightning.lua +48 -14
  130. package/engine/local-client.d.ts +14 -2
  131. package/engine/local-client.lua +168 -1
  132. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  133. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  134. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  135. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  136. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  137. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  138. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  139. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  140. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  141. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  142. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  143. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  144. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  145. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  146. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  147. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  148. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  149. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  150. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  151. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  152. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  153. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  154. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  155. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  156. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  157. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  158. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  159. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  160. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  161. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  162. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  163. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  164. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  165. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  166. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  167. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  168. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  169. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  170. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  171. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  172. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  173. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  174. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  175. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  176. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  177. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  178. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  179. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  180. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  181. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  182. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  183. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  184. package/engine/object-data/entry/ability-type/web.lua +52 -0
  185. package/engine/object-data/entry/ability-type.d.ts +21 -17
  186. package/engine/object-data/entry/ability-type.lua +177 -40
  187. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  188. package/engine/object-data/entry/buff-type.d.ts +6 -12
  189. package/engine/object-data/entry/buff-type.lua +13 -29
  190. package/engine/object-data/entry/destructible-type.d.ts +28 -2
  191. package/engine/object-data/entry/destructible-type.lua +155 -0
  192. package/engine/object-data/entry/item-type.d.ts +15 -1
  193. package/engine/object-data/entry/item-type.lua +93 -2
  194. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  195. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  196. package/engine/object-data/entry/sound-preset.lua +140 -0
  197. package/engine/object-data/entry/unit-type.d.ts +25 -5
  198. package/engine/object-data/entry/unit-type.lua +258 -93
  199. package/engine/object-data/entry/upgrade.d.ts +1 -1
  200. package/engine/object-data/entry/upgrade.lua +4 -4
  201. package/engine/object-data/entry.d.ts +16 -14
  202. package/engine/object-data/entry.lua +60 -32
  203. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  204. package/engine/object-field/ability.d.ts +28 -5
  205. package/engine/object-field/ability.lua +61 -7
  206. package/engine/object-field/item.d.ts +22 -0
  207. package/engine/object-field/item.lua +118 -0
  208. package/engine/object-field/unit.d.ts +72 -3
  209. package/engine/object-field/unit.lua +268 -7
  210. package/engine/object-field.d.ts +26 -7
  211. package/engine/object-field.lua +362 -117
  212. package/engine/random.d.ts +10 -0
  213. package/engine/random.lua +21 -0
  214. package/engine/standard/entries/buff-type.d.ts +3 -0
  215. package/engine/standard/entries/buff-type.lua +3 -0
  216. package/engine/standard/entries/sound-preset.d.ts +10 -0
  217. package/engine/standard/entries/sound-preset.lua +10 -0
  218. package/engine/standard/fields/ability.d.ts +4 -2
  219. package/engine/standard/fields/ability.lua +4 -2
  220. package/engine/standard/fields/item.d.ts +4 -0
  221. package/engine/standard/fields/item.lua +6 -0
  222. package/engine/standard/fields/unit.d.ts +12 -0
  223. package/engine/standard/fields/unit.lua +20 -0
  224. package/engine/synchronization.d.ts +11 -0
  225. package/engine/synchronization.lua +77 -0
  226. package/engine/text-tag.d.ts +36 -2
  227. package/engine/text-tag.lua +250 -10
  228. package/engine/unit.d.ts +9 -0
  229. package/engine/unit.lua +9 -0
  230. package/index.d.ts +1 -0
  231. package/index.lua +1 -0
  232. package/lualib_bundle.lua +1 -1
  233. package/math.d.ts +2 -0
  234. package/math.lua +14 -0
  235. package/net/socket.d.ts +7 -1
  236. package/net/socket.lua +45 -4
  237. package/network.d.ts +1 -0
  238. package/network.lua +3 -2
  239. package/objutil/buff.lua +12 -11
  240. package/objutil/object.lua +1 -1
  241. package/objutil/unit.lua +8 -0
  242. package/operation.lua +1 -4
  243. package/package.json +5 -5
  244. package/patch-lua.d.ts +0 -0
  245. package/patch-lua.lua +25 -0
  246. package/patch-lualib.lua +1 -1
  247. package/property.d.ts +55 -0
  248. package/property.lua +374 -0
  249. package/utility/arrays.d.ts +10 -1
  250. package/utility/arrays.lua +45 -3
  251. package/utility/callback-array.d.ts +17 -0
  252. package/utility/callback-array.lua +61 -0
  253. package/utility/functions.d.ts +8 -0
  254. package/utility/functions.lua +13 -0
  255. package/utility/lazy.d.ts +2 -0
  256. package/utility/lazy.lua +14 -0
  257. package/utility/linked-map.d.ts +35 -0
  258. package/utility/linked-map.lua +107 -0
  259. package/utility/linked-set.d.ts +16 -3
  260. package/utility/linked-set.lua +54 -3
  261. package/utility/lua-maps.d.ts +15 -2
  262. package/utility/lua-maps.lua +53 -2
  263. package/utility/lua-sets.d.ts +2 -0
  264. package/utility/lua-sets.lua +7 -0
  265. package/utility/records.lua +20 -1
  266. package/utility/reflection.lua +11 -7
  267. package/utility/types.d.ts +4 -0
  268. package/utility/unordered-map.d.ts +27 -0
  269. package/utility/unordered-map.lua +99 -0
  270. package/core/mapbounds.d.ts +0 -8
  271. package/core/mapbounds.lua +0 -12
  272. package/core/types/order.d.ts +0 -25
  273. package/core/types/order.lua +0 -55
  274. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  275. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  276. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  277. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -15,13 +15,32 @@ 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
27
+ local ____lua_2Dsets = require("utility.lua-sets")
28
+ local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
29
+ local ____socket = require("net.socket")
30
+ local Socket = ____socket.Socket
31
+ local ____lua_2Dmaps = require("utility.lua-maps")
32
+ local getOrPut = ____lua_2Dmaps.getOrPut
33
+ local luaMapInvert = ____lua_2Dmaps.luaMapInvert
34
+ local luaMapOf = ____lua_2Dmaps.luaMapOf
35
+ local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
18
36
  local frameClick = BlzFrameClick
19
37
  local frameGetEnable = BlzFrameGetEnable
20
38
  local frameIsVisible = BlzFrameIsVisible
21
39
  local frameSetEnable = BlzFrameSetEnable
22
40
  local frameSetScale = BlzFrameSetScale
23
- local getCameraTargetPositionX = GetCameraTargetPositionX
24
- local getCameraTargetPositionY = GetCameraTargetPositionY
41
+ local getHandleId = GetHandleId
42
+ local getOriginFrame = BlzGetOriginFrame
43
+ local location = Location
25
44
  local ____rawget = _G.rawget
26
45
  local rawset = _G.rawset
27
46
  local invoke = Event.invoke
@@ -62,8 +81,10 @@ local function updateBorders()
62
81
  local width4by3 = (w - h / 600 * 800) / 2
63
82
  local pxtodpi = 0.6 / h
64
83
  BlzFrameSetAbsPoint(leftBorder, FRAMEPOINT_TOPLEFT, -width4by3 * pxtodpi, 0.6)
84
+ BlzFrameSetScale(leftBorder, 1)
65
85
  BlzFrameSetSize(leftBorder, 0.001, 0.6)
66
86
  BlzFrameSetAbsPoint(rightBorder, FRAMEPOINT_TOPRIGHT, (-width4by3 + w) * pxtodpi, 0.6)
87
+ BlzFrameSetScale(rightBorder, 1)
67
88
  BlzFrameSetSize(rightBorder, 0.001, 0.6)
68
89
  end
69
90
  local worldFrame = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
@@ -120,6 +141,31 @@ do
120
141
  FramePoint.BOTTOM = FRAMEPOINT_BOTTOM
121
142
  FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
122
143
  end
144
+ local tooltipByFrame = setmetatable({}, {__mode = "k"})
145
+ local keyByAsyncInitOriginFrameType = luaMapOf(ORIGIN_FRAME_PORTRAIT_HP_TEXT, "hp", ORIGIN_FRAME_PORTRAIT_MANA_TEXT, "mana")
146
+ local asyncInitOriginFrameTypeByKey = luaMapInvert(keyByAsyncInitOriginFrameType)
147
+ local seenAsyncInitOriginFrameTypes = mutableLuaSet()
148
+ local seenAsyncInitOriginFrameTypesSocket = __TS__New(Socket)
149
+ local seenPlayersByAsyncInitOriginFrameType = mutableLuaMap()
150
+ seenAsyncInitOriginFrameTypesSocket.onMessage:addListener(function(player, key)
151
+ local asyncInitOriginFrameType = asyncInitOriginFrameTypeByKey[key]
152
+ if asyncInitOriginFrameType ~= nil then
153
+ getOrPut(seenPlayersByAsyncInitOriginFrameType, asyncInitOriginFrameType, mutableLuaSet)[player] = true
154
+ end
155
+ end)
156
+ local function haveAllPlayersSeenAsyncInitOriginFrameType(frame)
157
+ local players = seenPlayersByAsyncInitOriginFrameType[frame]
158
+ if players == nil then
159
+ return false
160
+ end
161
+ for ____, player in ipairs(Player.all) do
162
+ if player.isUser and player.isPlaying and not (players[player] ~= nil) then
163
+ return false
164
+ end
165
+ end
166
+ keyByAsyncInitOriginFrameType[frame] = nil
167
+ return true
168
+ end
123
169
  ____exports.Frame = __TS__Class()
124
170
  local Frame = ____exports.Frame
125
171
  Frame.name = "Frame"
@@ -240,6 +286,7 @@ function Frame.prototype.setTextColor(self, color)
240
286
  end
241
287
  function Frame.prototype.setTooltip(self, tooltip)
242
288
  BlzFrameSetTooltip(self.handle, tooltip.handle)
289
+ tooltipByFrame[self] = tooltip
243
290
  end
244
291
  function Frame.prototype.setMinMaxValue(self, minValue, maxValue)
245
292
  BlzFrameSetMinMaxValue(self.handle, minValue, maxValue)
@@ -267,7 +314,16 @@ function Frame.createSimple(self, name, parent, createContext)
267
314
  ))
268
315
  end
269
316
  function Frame.create(self, name, parent, priority, createContext)
270
- return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
317
+ if parent == ____exports.Frame.CONSOLE_UI_BACKDROP then
318
+ local helper = ____exports.Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD.handle
319
+ BlzFrameSetScale(helper, 1)
320
+ local frame = BlzCreateFrame(name, helper, priority or 0, createContext or 0)
321
+ BlzFrameSetScale(helper, ____exports.Frame.uiScale)
322
+ BlzFrameSetParent(frame, ____exports.Frame.CONSOLE_UI_BACKDROP.handle)
323
+ return self:of(frame)
324
+ else
325
+ return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
326
+ end
271
327
  end
272
328
  function Frame.createByType(self, typeName, name, parent, inherits, createContext)
273
329
  return self:of(BlzCreateFrameByType(
@@ -288,16 +344,35 @@ function Frame.byOrigin(self, frameType, index)
288
344
  if index == nil then
289
345
  index = 0
290
346
  end
291
- return self:of(BlzGetOriginFrame(frameType, index))
347
+ local frame = getOriginFrame(frameType, index)
348
+ local asyncInitOriginFrameTypeKey = keyByAsyncInitOriginFrameType[frameType]
349
+ if index == 0 and asyncInitOriginFrameTypeKey ~= nil and not haveAllPlayersSeenAsyncInitOriginFrameType(frameType) then
350
+ if getHandleId(frame) == 0 or seenAsyncInitOriginFrameTypes[frameType] ~= nil then
351
+ location(0, 0)
352
+ else
353
+ seenAsyncInitOriginFrameTypes[frameType] = true
354
+ seenAsyncInitOriginFrameTypesSocket:send(asyncInitOriginFrameTypeKey)
355
+ end
356
+ end
357
+ return self:of(frame)
292
358
  end
293
359
  Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
294
360
  Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
295
361
  Frame.CONSOLE_UI_BACKDROP = ____exports.Frame:byName("ConsoleUIBackdrop")
362
+ Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD = ____exports.Frame:createByType("FRAME", "ConsoleUIBackdropUIScaleHelperChild", ____exports.Frame.CONSOLE_UI_BACKDROP)
296
363
  Frame.CONSOLE_TOP_BAR = ____exports.Frame:byName("ConsoleTopBar")
297
364
  Frame.CONSOLE_BOTTOM_BAR = ____exports.Frame:byName("ConsoleBottomBar")
298
365
  Frame.WORLD = ____exports.Frame:byOrigin(ORIGIN_FRAME_WORLD_FRAME)
299
366
  Frame.CHAT = ____exports.Frame:byOrigin(ORIGIN_FRAME_CHAT_MSG)
300
367
  Frame.TIME_OF_DAY_CLOCK = ____exports.Frame.GAME_UI:getChild(5):getChild(0)
368
+ Frame.SIMPLE_FRAME_TEST_CHILD = ____exports.Frame:createByType("SIMPLEFRAME", "SimpleFrameTestParent", ____exports.Frame.CONSOLE_UI)
369
+ __TS__ObjectDefineProperty(
370
+ Frame,
371
+ "uiScale",
372
+ {get = function(self)
373
+ return ____exports.Frame.CONSOLE_BOTTOM_BAR.width / 0.8
374
+ end}
375
+ )
301
376
  __TS__ObjectDefineProperty(
302
377
  Frame,
303
378
  "leftBorder",
@@ -322,27 +397,21 @@ __TS__ObjectDefineProperty(
322
397
  Frame,
323
398
  "minX",
324
399
  {get = function(self)
325
- local w = BlzGetLocalClientWidth()
326
- local h = BlzGetLocalClientHeight()
327
- local width4by3 = (w - h / 600 * 800) / 2
328
- local pxtodpi = 0.6 / h
329
- return -width4by3 * pxtodpi
400
+ local minX = getFrameMinXMaxX()
401
+ return minX
330
402
  end}
331
403
  )
332
404
  __TS__ObjectDefineProperty(
333
405
  Frame,
334
406
  "maxX",
335
407
  {get = function(self)
336
- local w = BlzGetLocalClientWidth()
337
- local h = BlzGetLocalClientHeight()
338
- local width4by3 = (w - h / 600 * 800) / 2
339
- local pxtodpi = 0.6 / h
340
- return (-width4by3 + w) * pxtodpi
408
+ local ____, maxX = getFrameMinXMaxX()
409
+ return maxX
341
410
  end}
342
411
  )
343
412
  Frame.centerX = 0.4
344
- Frame.minY = 0
345
- Frame.maxY = 0.6
413
+ Frame.minY = FRAME_MIN_Y
414
+ Frame.maxY = FRAME_MAX_Y
346
415
  Frame.centerY = 0.3
347
416
  __TS__SetDescriptor(
348
417
  Frame.prototype,
@@ -599,6 +668,62 @@ __TS__SetDescriptor(
599
668
  end},
600
669
  true
601
670
  )
671
+ __TS__SetDescriptor(
672
+ Frame.prototype,
673
+ "mouseEnterLocalEvent",
674
+ {get = function(self)
675
+ local event = __TS__New(Event)
676
+ if not (tooltipByFrame[self] ~= nil) then
677
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
678
+ 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)
679
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
680
+ self:setTooltip(tooltip)
681
+ end
682
+ local isMouseInside = false
683
+ Timer.onPeriod[1 / 64]:addListener(function()
684
+ local tooltip = tooltipByFrame[self]
685
+ if tooltip and tooltip.visible then
686
+ if not isMouseInside then
687
+ isMouseInside = true
688
+ Event.invoke(event)
689
+ end
690
+ else
691
+ isMouseInside = false
692
+ end
693
+ end)
694
+ rawset(self, "mouseEnterLocalEvent", event)
695
+ return event
696
+ end},
697
+ true
698
+ )
699
+ __TS__SetDescriptor(
700
+ Frame.prototype,
701
+ "mouseLeaveLocalEvent",
702
+ {get = function(self)
703
+ local event = __TS__New(Event)
704
+ if not (tooltipByFrame[self] ~= nil) then
705
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
706
+ 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)
707
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
708
+ self:setTooltip(tooltip)
709
+ end
710
+ local isMouseInside = false
711
+ Timer.onPeriod[1 / 64]:addListener(function()
712
+ local tooltip = tooltipByFrame[self]
713
+ if tooltip and tooltip.visible then
714
+ isMouseInside = true
715
+ else
716
+ if isMouseInside then
717
+ isMouseInside = false
718
+ Event.invoke(event)
719
+ end
720
+ end
721
+ end)
722
+ rawset(self, "mouseLeaveLocalEvent", event)
723
+ return event
724
+ end},
725
+ true
726
+ )
602
727
  __TS__SetDescriptor(
603
728
  Frame.prototype,
604
729
  "popupMenuItemChangeEvent",
@@ -701,6 +826,18 @@ __TS__SetDescriptor(
701
826
  end},
702
827
  true
703
828
  )
829
+ __TS__SetDescriptor(
830
+ Frame.prototype,
831
+ "children",
832
+ {get = function(self)
833
+ local children = {}
834
+ for i = 0, self:getChildrenCount() - 1 do
835
+ children[i + 1] = self:getChild(i)
836
+ end
837
+ return children
838
+ end},
839
+ true
840
+ )
704
841
  __TS__ObjectDefineProperty(
705
842
  Frame,
706
843
  "onKeyPress",
@@ -848,16 +985,19 @@ __TS__ObjectDefineProperty(
848
985
  local event = __TS__New(Event)
849
986
  local syncX = 0
850
987
  local syncY = 0
851
- local syncCamX = getCameraTargetPositionX()
852
- local syncCamY = getCameraTargetPositionY()
988
+ local syncFrameX = 0
989
+ local syncFrameY = 0
853
990
  local lastX = syncX
854
991
  local lastY = syncY
855
992
  self.onMouseMove:addListener(function(player, x, y)
856
993
  if player.isLocal then
857
994
  syncX = x
858
995
  syncY = y
859
- syncCamX = getCameraTargetPositionX()
860
- syncCamY = getCameraTargetPositionY()
996
+ syncFrameX, syncFrameY = worldCoordinatesToFrame(
997
+ x,
998
+ y,
999
+ getTerrainZ(x, y)
1000
+ )
861
1001
  lastX = x
862
1002
  lastY = y
863
1003
  invoke(event, x, y)
@@ -867,9 +1007,8 @@ __TS__ObjectDefineProperty(
867
1007
  if syncX == 0 and syncY == 0 then
868
1008
  return
869
1009
  end
870
- local x = syncX + (getCameraTargetPositionX() - syncCamX)
871
- local y = syncY + (getCameraTargetPositionY() - syncCamY)
872
- if x ~= lastX or y ~= lastY then
1010
+ local x, y, ____, isDefinite = frameCoordinatesToWorld(syncFrameX, syncFrameY)
1011
+ if isDefinite and (x ~= lastX or y ~= lastY) then
873
1012
  lastX = x
874
1013
  lastY = y
875
1014
  invoke(event, x, y)
@@ -1,4 +1,5 @@
1
1
  /** @noSelfInFile */
2
2
  import { Item } from "../../engine/internal/item";
3
3
  import "../../engine/internal/item+owner";
4
+ import "../../engine/internal/item/fields";
4
5
  export { Item };
@@ -2,5 +2,6 @@ local ____exports = {}
2
2
  local ____item = require("engine.internal.item")
3
3
  local Item = ____item.Item
4
4
  require("engine.internal.item+owner")
5
+ require("engine.internal.item.fields")
5
6
  ____exports.Item = Item
6
7
  return ____exports
@@ -7,6 +7,18 @@ import { UpgradeId } from "../../engine/object-data/entry/upgrade";
7
7
  interface Unit {
8
8
  handle: junit;
9
9
  }
10
+ export declare const enum PlayerAllianceType {
11
+ PASSIVE = 0,
12
+ RESCUABLE = 1,
13
+ HELP_REQUEST = 2,
14
+ HELP_RESPONSE = 3,
15
+ SHARED_XP = 4,
16
+ SHARED_SPELLS = 5,
17
+ SHARED_VISION = 6,
18
+ SHARED_VISION_FORCED = 7,
19
+ SHARED_CONTROL = 8,
20
+ SHARED_ADVANCED_CONTROL = 9
21
+ }
10
22
  export declare class Player extends Handle<jplayer> {
11
23
  static readonly all: Player[];
12
24
  static readonly local: Player;
@@ -42,6 +54,8 @@ export declare class Player extends Handle<jplayer> {
42
54
  forceUICancel(): void;
43
55
  isAllyOf(other: Player): boolean;
44
56
  isEnemyOf(other: Player): boolean;
57
+ setAlliance(other: Player, type: PlayerAllianceType, value: boolean): void;
58
+ getAlliance(other: Player, type: PlayerAllianceType): boolean;
45
59
  setAbilityAvailable(abilityId: number, available: boolean): void;
46
60
  getMaximumUpgradeLevel(upgradeId: UpgradeId): number;
47
61
  setMaximumUpgradeLevel(upgradeId: UpgradeId, maximumLevel: number): void;
@@ -50,6 +64,7 @@ export declare class Player extends Handle<jplayer> {
50
64
  setUpgradeLevel(upgradeId: UpgradeId, level: number): void;
51
65
  private static getEvent;
52
66
  private static getMouseEvent;
67
+ static get allianceChangedEvent(): Readonly<Record<PlayerAllianceType, Event<[Player]>>>;
53
68
  static get onLeave(): Event<[Player]>;
54
69
  static get onMouseDown(): Event<[Player, jmousebuttontype]>;
55
70
  static get onMouseUp(): Event<[Player, jmousebuttontype]>;
@@ -66,6 +81,7 @@ export declare class Player extends Handle<jplayer> {
66
81
  };
67
82
  };
68
83
  static get onChat(): Event<[player: Player, message: string]>;
84
+ static readonly colorChangedEvent: Event<[Player]>;
69
85
  static byId(id: number): Player | undefined;
70
86
  }
71
87
  export {};
@@ -1,7 +1,7 @@
1
1
  local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
2
3
  local __TS__Class = ____lualib.__TS__Class
3
4
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
- local __TS__New = ____lualib.__TS__New
5
5
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
6
6
  local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
7
7
  local ____exports = {}
@@ -21,14 +21,35 @@ 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
26
+ local ____lazy = require("utility.lazy")
27
+ local lazyRecord = ____lazy.lazyRecord
28
+ local getPlayerAlliance = GetPlayerAlliance
24
29
  local getPlayerColor = GetPlayerColor
25
30
  local getPlayerName = GetPlayerName
26
31
  local getPlayerTechCount = GetPlayerTechCount
27
32
  local getPlayerTechMaxAllowed = GetPlayerTechMaxAllowed
33
+ local getTriggerPlayer = GetTriggerPlayer
34
+ local setPlayerAlliance = SetPlayerAlliance
28
35
  local setPlayerTechMaxAllowed = SetPlayerTechMaxAllowed
29
36
  local setPlayerTechResearched = SetPlayerTechResearched
30
37
  local setPlayerAbilityAvailable = SetPlayerAbilityAvailable
38
+ local triggerRegisterPlayerAllianceChange = TriggerRegisterPlayerAllianceChange
31
39
  local playerNative = _G.Player
40
+ local nativeByPlayerAllianceType = {
41
+ [0] = ALLIANCE_PASSIVE,
42
+ [1] = ALLIANCE_RESCUABLE,
43
+ [2] = ALLIANCE_HELP_REQUEST,
44
+ [3] = ALLIANCE_HELP_RESPONSE,
45
+ [4] = ALLIANCE_SHARED_XP,
46
+ [5] = ALLIANCE_SHARED_SPELLS,
47
+ [6] = ALLIANCE_SHARED_VISION,
48
+ [7] = ALLIANCE_SHARED_VISION_FORCED,
49
+ [8] = ALLIANCE_SHARED_CONTROL,
50
+ [9] = ALLIANCE_SHARED_ADVANCED_CONTROL
51
+ }
52
+ local playerColorChangedEvent = __TS__New(Event)
32
53
  ____exports.Player = __TS__Class()
33
54
  local Player = ____exports.Player
34
55
  Player.name = "Player"
@@ -83,6 +104,12 @@ end
83
104
  function Player.prototype.isEnemyOf(self, other)
84
105
  return IsPlayerEnemy(self.handle, other.handle)
85
106
  end
107
+ function Player.prototype.setAlliance(self, other, ____type, value)
108
+ setPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type], value)
109
+ end
110
+ function Player.prototype.getAlliance(self, other, ____type)
111
+ return getPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type])
112
+ end
86
113
  function Player.prototype.setAbilityAvailable(self, abilityId, available)
87
114
  setPlayerAbilityAvailable(self.handle, abilityId, available)
88
115
  end
@@ -122,14 +149,11 @@ function Player.getMouseEvent(self, event, collector)
122
149
  self.events[eventId] = __TS__New(
123
150
  TriggerEvent,
124
151
  function(trigger)
125
- Timer:simple(
126
- 0,
127
- function()
128
- for ____, player in ipairs(____exports.Player.all) do
129
- TriggerRegisterPlayerEvent(trigger, player.handle, event)
130
- end
152
+ Timer:run(function()
153
+ for ____, player in ipairs(____exports.Player.all) do
154
+ TriggerRegisterPlayerEvent(trigger, player.handle, event)
131
155
  end
132
- )
156
+ end)
133
157
  end,
134
158
  collector or (function() return {} end)
135
159
  )
@@ -178,7 +202,7 @@ function Player.getKeyEvent(self, isDown)
178
202
  TriggerAddCondition(
179
203
  trigger,
180
204
  Condition(function()
181
- local player = ____exports.Player:of(GetTriggerPlayer())
205
+ local player = ____exports.Player:of(getTriggerPlayer())
182
206
  local key = BlzGetTriggerPlayerKey()
183
207
  local metaKey = BlzGetTriggerPlayerMetaKey()
184
208
  Event.invoke(event, player, key, metaKey)
@@ -249,7 +273,7 @@ Player.all = (function()
249
273
  end
250
274
  return all
251
275
  end)()
252
- Player["local"] = ____exports.Player:of(GetLocalPlayer())
276
+ Player["local"] = ____exports.Player:of(PLAYER_LOCAL_HANDLE)
253
277
  Player.neutralPassive = ____exports.Player.all[PLAYER_NEUTRAL_PASSIVE + 1]
254
278
  Player.neutralAggressive = ____exports.Player.all[PLAYER_NEUTRAL_AGGRESSIVE + 1]
255
279
  Player.neutralVictim = ____exports.Player.all[bj_PLAYER_NEUTRAL_VICTIM + 1]
@@ -277,6 +301,7 @@ __TS__SetDescriptor(
277
301
  end,
278
302
  set = function(self, color)
279
303
  SetPlayerColor(self.handle, color.handle)
304
+ Event.invoke(playerColorChangedEvent, self)
280
305
  end
281
306
  },
282
307
  true
@@ -367,13 +392,32 @@ __TS__SetDescriptor(
367
392
  end},
368
393
  true
369
394
  )
395
+ __TS__ObjectDefineProperty(
396
+ Player,
397
+ "allianceChangedEvent",
398
+ {get = function(self)
399
+ local event = lazyRecord(function(____type)
400
+ return __TS__New(
401
+ TriggerEvent,
402
+ function(trigger)
403
+ for ____, player in ipairs(____exports.Player.all) do
404
+ triggerRegisterPlayerAllianceChange(trigger, player.handle, nativeByPlayerAllianceType[____type])
405
+ end
406
+ end,
407
+ function() return ____exports.Player:of(getTriggerPlayer()) end
408
+ )
409
+ end)
410
+ rawset(self, "allianceChangedEvent", event)
411
+ return event
412
+ end}
413
+ )
370
414
  __TS__ObjectDefineProperty(
371
415
  Player,
372
416
  "onLeave",
373
417
  {get = function(self)
374
418
  return ____exports.Player:getEvent(
375
419
  EVENT_PLAYER_LEAVE,
376
- function() return ____exports.Player:of(GetTriggerPlayer()) end
420
+ function() return ____exports.Player:of(getTriggerPlayer()) end
377
421
  )
378
422
  end}
379
423
  )
@@ -383,7 +427,7 @@ __TS__ObjectDefineProperty(
383
427
  {get = function(self)
384
428
  return ____exports.Player:getMouseEvent(
385
429
  EVENT_PLAYER_MOUSE_DOWN,
386
- function() return ____exports.Player:of(GetTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
430
+ function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
387
431
  )
388
432
  end}
389
433
  )
@@ -393,7 +437,7 @@ __TS__ObjectDefineProperty(
393
437
  {get = function(self)
394
438
  return ____exports.Player:getMouseEvent(
395
439
  EVENT_PLAYER_MOUSE_UP,
396
- function() return ____exports.Player:of(GetTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
440
+ function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
397
441
  )
398
442
  end}
399
443
  )
@@ -403,7 +447,7 @@ __TS__ObjectDefineProperty(
403
447
  {get = function(self)
404
448
  return ____exports.Player:getMouseEvent(
405
449
  EVENT_PLAYER_MOUSE_MOVE,
406
- function() return ____exports.Player:of(GetTriggerPlayer()), vec2(
450
+ function() return ____exports.Player:of(getTriggerPlayer()), vec2(
407
451
  BlzGetTriggerPlayerMouseX(),
408
452
  BlzGetTriggerPlayerMouseY()
409
453
  ) end
@@ -439,10 +483,11 @@ __TS__ObjectDefineProperty(
439
483
  TriggerRegisterPlayerChatEvent(trigger, player.handle, "", false)
440
484
  end
441
485
  end,
442
- function() return ____exports.Player:of(GetTriggerPlayer()), GetEventPlayerChatString() end
486
+ function() return ____exports.Player:of(getTriggerPlayer()), GetEventPlayerChatString() end
443
487
  )
444
488
  rawset(self, "onChat", event)
445
489
  return event
446
490
  end}
447
491
  )
492
+ Player.colorChangedEvent = playerColorChangedEvent
448
493
  return ____exports
@@ -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
  }