warscript 0.0.1-dev.a4deb44 → 0.0.1-dev.a5a2f5e
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.
- package/attributes.d.ts +18 -0
- package/attributes.lua +32 -0
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- package/core/types/frame.d.ts +8 -1
- package/core/types/frame.lua +164 -23
- package/core/types/group.d.ts +0 -1
- package/core/types/handle.d.ts +2 -1
- package/core/types/handle.lua +5 -0
- package/core/types/image.d.ts +0 -1
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/player.d.ts +17 -1
- package/core/types/player.lua +70 -24
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +100 -25
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/index.d.ts +1 -0
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +24 -11
- package/engine/behavior.lua +233 -73
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
- package/engine/behaviour/ability/damage.d.ts +42 -11
- package/engine/behaviour/ability/damage.lua +89 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -15
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +35 -7
- package/engine/behaviour/ability.lua +183 -27
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +48 -4
- package/engine/behaviour/unit.lua +292 -2
- package/engine/buff.d.ts +160 -53
- package/engine/buff.lua +711 -269
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +23 -14
- package/engine/internal/ability.lua +129 -85
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +16 -19
- package/engine/internal/item.lua +174 -94
- package/engine/internal/mechanics/ability-duration.d.ts +1 -3
- package/engine/internal/mechanics/ability-duration.lua +3 -1
- package/engine/internal/mechanics/cast-ability.lua +89 -0
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +17 -8
- package/engine/internal/unit/bonus.lua +56 -4
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +12 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +97 -36
- package/engine/internal/unit.lua +701 -336
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +14 -2
- package/engine/local-client.lua +168 -1
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
- package/engine/object-data/entry/ability-type/blink.lua +39 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +21 -18
- package/engine/object-data/entry/ability-type.lua +177 -40
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +143 -202
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +6 -13
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +28 -3
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +15 -2
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -2
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +65 -5
- package/engine/object-data/entry/unit-type.lua +555 -62
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +1 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +18 -17
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +28 -5
- package/engine/object-field/ability.lua +61 -7
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -8
- package/engine/object-field.lua +362 -117
- package/engine/random.d.ts +11 -0
- package/engine/random.lua +30 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/entries/unit-type.d.ts +42 -1
- package/engine/standard/entries/unit-type.lua +42 -1
- package/engine/standard/fields/ability.d.ts +5 -3
- package/engine/standard/fields/ability.lua +5 -3
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +10 -0
- package/engine/unit.lua +19 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/global/vec2.lua +1 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +147 -43
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +2 -2
- package/math.lua +14 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.d.ts +0 -1
- package/objutil/object.lua +1 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/operation.lua +1 -4
- package/package.json +13 -14
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +13 -5
- package/utility/arrays.lua +45 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +16 -4
- package/utility/linked-set.lua +54 -3
- package/utility/lua-maps.d.ts +16 -4
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +3 -2
- package/utility/lua-sets.lua +7 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +6 -2
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → mechanics/cast-ability.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/core/types/frame.lua
CHANGED
|
@@ -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
|
|
24
|
-
local
|
|
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
|
-
|
|
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,14 +344,35 @@ function Frame.byOrigin(self, frameType, index)
|
|
|
288
344
|
if index == nil then
|
|
289
345
|
index = 0
|
|
290
346
|
end
|
|
291
|
-
|
|
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)
|
|
363
|
+
Frame.CONSOLE_TOP_BAR = ____exports.Frame:byName("ConsoleTopBar")
|
|
364
|
+
Frame.CONSOLE_BOTTOM_BAR = ____exports.Frame:byName("ConsoleBottomBar")
|
|
296
365
|
Frame.WORLD = ____exports.Frame:byOrigin(ORIGIN_FRAME_WORLD_FRAME)
|
|
297
366
|
Frame.CHAT = ____exports.Frame:byOrigin(ORIGIN_FRAME_CHAT_MSG)
|
|
298
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
|
+
)
|
|
299
376
|
__TS__ObjectDefineProperty(
|
|
300
377
|
Frame,
|
|
301
378
|
"leftBorder",
|
|
@@ -320,27 +397,21 @@ __TS__ObjectDefineProperty(
|
|
|
320
397
|
Frame,
|
|
321
398
|
"minX",
|
|
322
399
|
{get = function(self)
|
|
323
|
-
local
|
|
324
|
-
|
|
325
|
-
local width4by3 = (w - h / 600 * 800) / 2
|
|
326
|
-
local pxtodpi = 0.6 / h
|
|
327
|
-
return -width4by3 * pxtodpi
|
|
400
|
+
local minX = getFrameMinXMaxX()
|
|
401
|
+
return minX
|
|
328
402
|
end}
|
|
329
403
|
)
|
|
330
404
|
__TS__ObjectDefineProperty(
|
|
331
405
|
Frame,
|
|
332
406
|
"maxX",
|
|
333
407
|
{get = function(self)
|
|
334
|
-
local
|
|
335
|
-
|
|
336
|
-
local width4by3 = (w - h / 600 * 800) / 2
|
|
337
|
-
local pxtodpi = 0.6 / h
|
|
338
|
-
return (-width4by3 + w) * pxtodpi
|
|
408
|
+
local ____, maxX = getFrameMinXMaxX()
|
|
409
|
+
return maxX
|
|
339
410
|
end}
|
|
340
411
|
)
|
|
341
412
|
Frame.centerX = 0.4
|
|
342
|
-
Frame.minY =
|
|
343
|
-
Frame.maxY =
|
|
413
|
+
Frame.minY = FRAME_MIN_Y
|
|
414
|
+
Frame.maxY = FRAME_MAX_Y
|
|
344
415
|
Frame.centerY = 0.3
|
|
345
416
|
__TS__SetDescriptor(
|
|
346
417
|
Frame.prototype,
|
|
@@ -597,6 +668,62 @@ __TS__SetDescriptor(
|
|
|
597
668
|
end},
|
|
598
669
|
true
|
|
599
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
|
+
)
|
|
600
727
|
__TS__SetDescriptor(
|
|
601
728
|
Frame.prototype,
|
|
602
729
|
"popupMenuItemChangeEvent",
|
|
@@ -699,6 +826,18 @@ __TS__SetDescriptor(
|
|
|
699
826
|
end},
|
|
700
827
|
true
|
|
701
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
|
+
)
|
|
702
841
|
__TS__ObjectDefineProperty(
|
|
703
842
|
Frame,
|
|
704
843
|
"onKeyPress",
|
|
@@ -846,16 +985,19 @@ __TS__ObjectDefineProperty(
|
|
|
846
985
|
local event = __TS__New(Event)
|
|
847
986
|
local syncX = 0
|
|
848
987
|
local syncY = 0
|
|
849
|
-
local
|
|
850
|
-
local
|
|
988
|
+
local syncFrameX = 0
|
|
989
|
+
local syncFrameY = 0
|
|
851
990
|
local lastX = syncX
|
|
852
991
|
local lastY = syncY
|
|
853
992
|
self.onMouseMove:addListener(function(player, x, y)
|
|
854
993
|
if player.isLocal then
|
|
855
994
|
syncX = x
|
|
856
995
|
syncY = y
|
|
857
|
-
|
|
858
|
-
|
|
996
|
+
syncFrameX, syncFrameY = worldCoordinatesToFrame(
|
|
997
|
+
x,
|
|
998
|
+
y,
|
|
999
|
+
getTerrainZ(x, y)
|
|
1000
|
+
)
|
|
859
1001
|
lastX = x
|
|
860
1002
|
lastY = y
|
|
861
1003
|
invoke(event, x, y)
|
|
@@ -865,9 +1007,8 @@ __TS__ObjectDefineProperty(
|
|
|
865
1007
|
if syncX == 0 and syncY == 0 then
|
|
866
1008
|
return
|
|
867
1009
|
end
|
|
868
|
-
local x
|
|
869
|
-
|
|
870
|
-
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
|
|
871
1012
|
lastX = x
|
|
872
1013
|
lastY = y
|
|
873
1014
|
invoke(event, x, y)
|
package/core/types/group.d.ts
CHANGED
package/core/types/handle.d.ts
CHANGED
|
@@ -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?;
|
package/core/types/handle.lua
CHANGED
|
@@ -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
|
package/core/types/image.d.ts
CHANGED
package/core/types/item.d.ts
CHANGED
package/core/types/item.lua
CHANGED
package/core/types/missile.d.ts
CHANGED
|
@@ -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 {
|
package/core/types/missile.lua
CHANGED
|
@@ -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(
|
|
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
|
package/core/types/player.d.ts
CHANGED
|
@@ -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;
|
|
@@ -16,6 +28,7 @@ export declare class Player extends Handle<jplayer> {
|
|
|
16
28
|
static readonly neutralExtra: Player;
|
|
17
29
|
private static events;
|
|
18
30
|
readonly id: number;
|
|
31
|
+
readonly slotState: jplayerslotstate;
|
|
19
32
|
constructor(handle: jplayer);
|
|
20
33
|
onDestroy(): HandleDestructor;
|
|
21
34
|
toString(): string;
|
|
@@ -33,7 +46,6 @@ export declare class Player extends Handle<jplayer> {
|
|
|
33
46
|
get isUser(): boolean;
|
|
34
47
|
get isPlaying(): boolean;
|
|
35
48
|
get controller(): jmapcontrol;
|
|
36
|
-
get slotState(): jplayerslotstate;
|
|
37
49
|
clearSelection(): void;
|
|
38
50
|
selectSingle(unit: Unit): void;
|
|
39
51
|
select(unit: Unit): void;
|
|
@@ -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 {};
|
package/core/types/player.lua
CHANGED
|
@@ -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,20 +21,42 @@ 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"
|
|
35
56
|
__TS__ClassExtends(Player, Handle)
|
|
36
57
|
function Player.prototype.____constructor(self, handle)
|
|
37
58
|
Handle.prototype.____constructor(self, handle)
|
|
59
|
+
self.slotState = GetPlayerSlotState(self.handle)
|
|
38
60
|
self.id = GetPlayerId(handle)
|
|
39
61
|
end
|
|
40
62
|
function Player.prototype.onDestroy(self)
|
|
@@ -83,6 +105,12 @@ end
|
|
|
83
105
|
function Player.prototype.isEnemyOf(self, other)
|
|
84
106
|
return IsPlayerEnemy(self.handle, other.handle)
|
|
85
107
|
end
|
|
108
|
+
function Player.prototype.setAlliance(self, other, ____type, value)
|
|
109
|
+
setPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type], value)
|
|
110
|
+
end
|
|
111
|
+
function Player.prototype.getAlliance(self, other, ____type)
|
|
112
|
+
return getPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type])
|
|
113
|
+
end
|
|
86
114
|
function Player.prototype.setAbilityAvailable(self, abilityId, available)
|
|
87
115
|
setPlayerAbilityAvailable(self.handle, abilityId, available)
|
|
88
116
|
end
|
|
@@ -122,14 +150,11 @@ function Player.getMouseEvent(self, event, collector)
|
|
|
122
150
|
self.events[eventId] = __TS__New(
|
|
123
151
|
TriggerEvent,
|
|
124
152
|
function(trigger)
|
|
125
|
-
Timer:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
for ____, player in ipairs(____exports.Player.all) do
|
|
129
|
-
TriggerRegisterPlayerEvent(trigger, player.handle, event)
|
|
130
|
-
end
|
|
153
|
+
Timer:run(function()
|
|
154
|
+
for ____, player in ipairs(____exports.Player.all) do
|
|
155
|
+
TriggerRegisterPlayerEvent(trigger, player.handle, event)
|
|
131
156
|
end
|
|
132
|
-
)
|
|
157
|
+
end)
|
|
133
158
|
end,
|
|
134
159
|
collector or (function() return {} end)
|
|
135
160
|
)
|
|
@@ -178,7 +203,7 @@ function Player.getKeyEvent(self, isDown)
|
|
|
178
203
|
TriggerAddCondition(
|
|
179
204
|
trigger,
|
|
180
205
|
Condition(function()
|
|
181
|
-
local player = ____exports.Player:of(
|
|
206
|
+
local player = ____exports.Player:of(getTriggerPlayer())
|
|
182
207
|
local key = BlzGetTriggerPlayerKey()
|
|
183
208
|
local metaKey = BlzGetTriggerPlayerMetaKey()
|
|
184
209
|
Event.invoke(event, player, key, metaKey)
|
|
@@ -249,7 +274,7 @@ Player.all = (function()
|
|
|
249
274
|
end
|
|
250
275
|
return all
|
|
251
276
|
end)()
|
|
252
|
-
Player["local"] = ____exports.Player:of(
|
|
277
|
+
Player["local"] = ____exports.Player:of(PLAYER_LOCAL_HANDLE)
|
|
253
278
|
Player.neutralPassive = ____exports.Player.all[PLAYER_NEUTRAL_PASSIVE + 1]
|
|
254
279
|
Player.neutralAggressive = ____exports.Player.all[PLAYER_NEUTRAL_AGGRESSIVE + 1]
|
|
255
280
|
Player.neutralVictim = ____exports.Player.all[bj_PLAYER_NEUTRAL_VICTIM + 1]
|
|
@@ -277,6 +302,7 @@ __TS__SetDescriptor(
|
|
|
277
302
|
end,
|
|
278
303
|
set = function(self, color)
|
|
279
304
|
SetPlayerColor(self.handle, color.handle)
|
|
305
|
+
Event.invoke(playerColorChangedEvent, self)
|
|
280
306
|
end
|
|
281
307
|
},
|
|
282
308
|
true
|
|
@@ -339,7 +365,7 @@ __TS__SetDescriptor(
|
|
|
339
365
|
Player.prototype,
|
|
340
366
|
"isUser",
|
|
341
367
|
{get = function(self)
|
|
342
|
-
return
|
|
368
|
+
return self.controller == MAP_CONTROL_USER
|
|
343
369
|
end},
|
|
344
370
|
true
|
|
345
371
|
)
|
|
@@ -347,7 +373,7 @@ __TS__SetDescriptor(
|
|
|
347
373
|
Player.prototype,
|
|
348
374
|
"isPlaying",
|
|
349
375
|
{get = function(self)
|
|
350
|
-
return
|
|
376
|
+
return self.slotState == PLAYER_SLOT_STATE_PLAYING
|
|
351
377
|
end},
|
|
352
378
|
true
|
|
353
379
|
)
|
|
@@ -355,17 +381,30 @@ __TS__SetDescriptor(
|
|
|
355
381
|
Player.prototype,
|
|
356
382
|
"controller",
|
|
357
383
|
{get = function(self)
|
|
358
|
-
|
|
384
|
+
local controller = GetPlayerController(self.handle)
|
|
385
|
+
rawset(self, "controller", controller)
|
|
386
|
+
return controller
|
|
359
387
|
end},
|
|
360
388
|
true
|
|
361
389
|
)
|
|
362
|
-
|
|
363
|
-
Player
|
|
364
|
-
"
|
|
390
|
+
__TS__ObjectDefineProperty(
|
|
391
|
+
Player,
|
|
392
|
+
"allianceChangedEvent",
|
|
365
393
|
{get = function(self)
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
394
|
+
local event = lazyRecord(function(____type)
|
|
395
|
+
return __TS__New(
|
|
396
|
+
TriggerEvent,
|
|
397
|
+
function(trigger)
|
|
398
|
+
for ____, player in ipairs(____exports.Player.all) do
|
|
399
|
+
triggerRegisterPlayerAllianceChange(trigger, player.handle, nativeByPlayerAllianceType[____type])
|
|
400
|
+
end
|
|
401
|
+
end,
|
|
402
|
+
function() return ____exports.Player:of(getTriggerPlayer()) end
|
|
403
|
+
)
|
|
404
|
+
end)
|
|
405
|
+
rawset(self, "allianceChangedEvent", event)
|
|
406
|
+
return event
|
|
407
|
+
end}
|
|
369
408
|
)
|
|
370
409
|
__TS__ObjectDefineProperty(
|
|
371
410
|
Player,
|
|
@@ -373,7 +412,7 @@ __TS__ObjectDefineProperty(
|
|
|
373
412
|
{get = function(self)
|
|
374
413
|
return ____exports.Player:getEvent(
|
|
375
414
|
EVENT_PLAYER_LEAVE,
|
|
376
|
-
function() return ____exports.Player:of(
|
|
415
|
+
function() return ____exports.Player:of(getTriggerPlayer()) end
|
|
377
416
|
)
|
|
378
417
|
end}
|
|
379
418
|
)
|
|
@@ -383,7 +422,7 @@ __TS__ObjectDefineProperty(
|
|
|
383
422
|
{get = function(self)
|
|
384
423
|
return ____exports.Player:getMouseEvent(
|
|
385
424
|
EVENT_PLAYER_MOUSE_DOWN,
|
|
386
|
-
function() return ____exports.Player:of(
|
|
425
|
+
function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
|
|
387
426
|
)
|
|
388
427
|
end}
|
|
389
428
|
)
|
|
@@ -393,7 +432,7 @@ __TS__ObjectDefineProperty(
|
|
|
393
432
|
{get = function(self)
|
|
394
433
|
return ____exports.Player:getMouseEvent(
|
|
395
434
|
EVENT_PLAYER_MOUSE_UP,
|
|
396
|
-
function() return ____exports.Player:of(
|
|
435
|
+
function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
|
|
397
436
|
)
|
|
398
437
|
end}
|
|
399
438
|
)
|
|
@@ -403,7 +442,7 @@ __TS__ObjectDefineProperty(
|
|
|
403
442
|
{get = function(self)
|
|
404
443
|
return ____exports.Player:getMouseEvent(
|
|
405
444
|
EVENT_PLAYER_MOUSE_MOVE,
|
|
406
|
-
function() return ____exports.Player:of(
|
|
445
|
+
function() return ____exports.Player:of(getTriggerPlayer()), vec2(
|
|
407
446
|
BlzGetTriggerPlayerMouseX(),
|
|
408
447
|
BlzGetTriggerPlayerMouseY()
|
|
409
448
|
) end
|
|
@@ -439,10 +478,17 @@ __TS__ObjectDefineProperty(
|
|
|
439
478
|
TriggerRegisterPlayerChatEvent(trigger, player.handle, "", false)
|
|
440
479
|
end
|
|
441
480
|
end,
|
|
442
|
-
function() return ____exports.Player:of(
|
|
481
|
+
function() return ____exports.Player:of(getTriggerPlayer()), GetEventPlayerChatString() end
|
|
443
482
|
)
|
|
444
483
|
rawset(self, "onChat", event)
|
|
445
484
|
return event
|
|
446
485
|
end}
|
|
447
486
|
)
|
|
487
|
+
Player.colorChangedEvent = playerColorChangedEvent
|
|
488
|
+
____exports.Player.onLeave:addListener(
|
|
489
|
+
999999,
|
|
490
|
+
function(player)
|
|
491
|
+
rawset(player, "slotState", PLAYER_SLOT_STATE_LEFT)
|
|
492
|
+
end
|
|
493
|
+
)
|
|
448
494
|
return ____exports
|