warscript 0.0.1-dev.e7b1f67 → 0.0.1-dev.ea102a7
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 +5 -0
- package/attributes.lua +8 -1
- 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 -0
- package/core/types/frame.lua +117 -22
- package/core/types/player.lua +3 -1
- 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 +99 -24
- package/core/types/tileCell.d.ts +9 -0
- package/core/types/tileCell.lua +92 -0
- package/core/types/timer.d.ts +8 -8
- package/core/types/timer.lua +39 -23
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/native.d.ts +846 -790
- package/engine/behavior.d.ts +11 -6
- package/engine/behavior.lua +112 -33
- 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 +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +39 -11
- package/engine/behaviour/ability/damage.lua +83 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -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 -19
- 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 +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -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 +20 -4
- package/engine/behaviour/ability.lua +111 -47
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -3
- package/engine/behaviour/unit/stun-immunity.lua +52 -27
- package/engine/behaviour/unit.d.ts +39 -0
- package/engine/behaviour/unit.lua +210 -4
- package/engine/buff.d.ts +102 -42
- package/engine/buff.lua +446 -206
- 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+owner.lua +12 -6
- package/engine/internal/item.d.ts +20 -19
- package/engine/internal/item.lua +191 -74
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- 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/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/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +108 -16
- 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/bonus.d.ts +6 -2
- package/engine/internal/unit/bonus.lua +23 -1
- 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/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 +51 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit+ability.lua +12 -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 +42 -10
- package/engine/internal/unit.d.ts +57 -19
- package/engine/internal/unit.lua +396 -160
- 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 +7 -2
- package/engine/local-client.lua +82 -0
- 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 -2
- 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/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/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.lua +12 -1
- 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/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/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/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/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 +19 -17
- package/engine/object-data/entry/ability-type.lua +93 -36
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +15 -1
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- 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 +21 -5
- package/engine/object-data/entry/unit-type.lua +214 -93
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- 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 +59 -5
- package/engine/object-field/unit.d.ts +57 -3
- package/engine/object-field/unit.lua +207 -7
- package/engine/object-field.d.ts +17 -6
- package/engine/object-field.lua +190 -90
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -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/fields/ability.d.ts +2 -0
- package/engine/standard/fields/ability.lua +2 -0
- package/engine/standard/fields/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +249 -10
- package/engine/unit.d.ts +4 -0
- package/engine/unit.lua +4 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +7 -2
- 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/buff.lua +3 -4
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/utility/arrays.d.ts +10 -1
- package/utility/arrays.lua +45 -3
- package/utility/callback-array.d.ts +13 -0
- package/utility/callback-array.lua +46 -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-set.d.ts +12 -2
- package/utility/linked-set.lua +8 -2
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -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/text-tag.lua
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__New = ____lualib.__TS__New
|
|
5
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
3
6
|
local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
|
|
4
7
|
local ____exports = {}
|
|
5
8
|
local ____color = require("core.types.color")
|
|
6
9
|
local Color = ____color.Color
|
|
10
|
+
local ____timer = require("core.types.timer")
|
|
11
|
+
local Timer = ____timer.Timer
|
|
12
|
+
local ____destroyable = require("destroyable")
|
|
13
|
+
local AbstractDestroyable = ____destroyable.AbstractDestroyable
|
|
14
|
+
local ____playerCamera = require("core.types.playerCamera")
|
|
15
|
+
local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
|
|
16
|
+
local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
|
|
17
|
+
local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
|
|
18
|
+
local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
|
|
19
|
+
local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
|
|
7
20
|
local createTextTag = CreateTextTag
|
|
8
21
|
local destroyTextTag = DestroyTextTag
|
|
9
22
|
local setTextTagText = SetTextTagText
|
|
@@ -17,17 +30,14 @@ local setTextTagPermanent = SetTextTagPermanent
|
|
|
17
30
|
local setTextTagAge = SetTextTagAge
|
|
18
31
|
local setTextTagLifespan = SetTextTagLifespan
|
|
19
32
|
local setTextTagFadepoint = SetTextTagFadepoint
|
|
33
|
+
local isUnitHidden = IsUnitHidden
|
|
34
|
+
local isUnitLoaded = IsUnitLoaded
|
|
35
|
+
local isUnitVisible = IsUnitVisible
|
|
36
|
+
local getUnitFlyHeight = GetUnitFlyHeight
|
|
37
|
+
local getUnitX = GetUnitX
|
|
38
|
+
local getUnitY = GetUnitY
|
|
20
39
|
local DEFAULT_FONT_SIZE = 0.024
|
|
21
|
-
|
|
22
|
-
local TextTag = ____exports.TextTag
|
|
23
|
-
TextTag.name = "TextTag"
|
|
24
|
-
function TextTag.prototype.____constructor(self, handle)
|
|
25
|
-
self.handle = handle
|
|
26
|
-
end
|
|
27
|
-
function TextTag.flash(self, configuration, text, x, y, z)
|
|
28
|
-
local textTag = createTextTag()
|
|
29
|
-
setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
|
|
30
|
-
setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
|
|
40
|
+
local function applyConfiguration(textTag, configuration)
|
|
31
41
|
setTextTagFadepoint(textTag, configuration.fadepoint)
|
|
32
42
|
setTextTagLifespan(textTag, configuration.lifespan)
|
|
33
43
|
local color = configuration.color
|
|
@@ -42,6 +52,213 @@ function TextTag.flash(self, configuration, text, x, y, z)
|
|
|
42
52
|
setTextTagPermanent(textTag, false)
|
|
43
53
|
setTextTagVisibility(textTag, true)
|
|
44
54
|
end
|
|
55
|
+
local unitTextTags = setmetatable({}, {__mode = "k"})
|
|
56
|
+
local function ensureHandle(textTag)
|
|
57
|
+
local handle = textTag[101]
|
|
58
|
+
if handle == nil then
|
|
59
|
+
handle = createTextTag()
|
|
60
|
+
applyConfiguration(handle, textTag[102])
|
|
61
|
+
setTextTagPermanent(handle, true)
|
|
62
|
+
setTextTagText(handle, textTag[103] or "", textTag[104] or DEFAULT_FONT_SIZE)
|
|
63
|
+
local color = textTag[105]
|
|
64
|
+
if color ~= nil then
|
|
65
|
+
setTextTagColor(
|
|
66
|
+
handle,
|
|
67
|
+
color.r,
|
|
68
|
+
color.g,
|
|
69
|
+
color.b,
|
|
70
|
+
color.a
|
|
71
|
+
)
|
|
72
|
+
end
|
|
73
|
+
local unit = textTag[100]
|
|
74
|
+
if unit ~= nil then
|
|
75
|
+
setTextTagPosUnit(handle, unit.handle, textTag[102].offsetZ)
|
|
76
|
+
else
|
|
77
|
+
setTextTagPos(handle, textTag[106] or 0, textTag[107] or 0, 0)
|
|
78
|
+
end
|
|
79
|
+
textTag[101] = handle
|
|
80
|
+
end
|
|
81
|
+
return handle
|
|
82
|
+
end
|
|
83
|
+
____exports.TextTag = __TS__Class()
|
|
84
|
+
local TextTag = ____exports.TextTag
|
|
85
|
+
TextTag.name = "TextTag"
|
|
86
|
+
__TS__ClassExtends(TextTag, AbstractDestroyable)
|
|
87
|
+
function TextTag.prototype.____constructor(self, handle)
|
|
88
|
+
AbstractDestroyable.prototype.____constructor(self)
|
|
89
|
+
self[101] = handle
|
|
90
|
+
end
|
|
91
|
+
function TextTag.prototype.onDestroy(self)
|
|
92
|
+
local handle = self[101]
|
|
93
|
+
if handle ~= nil then
|
|
94
|
+
destroyTextTag(handle)
|
|
95
|
+
self[101] = nil
|
|
96
|
+
end
|
|
97
|
+
unitTextTags[self] = nil
|
|
98
|
+
return AbstractDestroyable.prototype.onDestroy(self)
|
|
99
|
+
end
|
|
100
|
+
function TextTag.flash(self, configuration, text, x, y, z)
|
|
101
|
+
local textTag = createTextTag()
|
|
102
|
+
setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
|
|
103
|
+
setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
|
|
104
|
+
applyConfiguration(textTag, configuration)
|
|
105
|
+
end
|
|
106
|
+
function TextTag.create(self, configuration, text, unit)
|
|
107
|
+
local textTag = __TS__New(____exports.TextTag)
|
|
108
|
+
textTag[103] = text
|
|
109
|
+
textTag[100] = unit
|
|
110
|
+
textTag[102] = configuration
|
|
111
|
+
ensureHandle(textTag)
|
|
112
|
+
unitTextTags[textTag] = true
|
|
113
|
+
return textTag
|
|
114
|
+
end
|
|
115
|
+
__TS__SetDescriptor(
|
|
116
|
+
TextTag.prototype,
|
|
117
|
+
"text",
|
|
118
|
+
{
|
|
119
|
+
get = function(self)
|
|
120
|
+
return self[103] or ""
|
|
121
|
+
end,
|
|
122
|
+
set = function(self, text)
|
|
123
|
+
setTextTagText(
|
|
124
|
+
ensureHandle(self),
|
|
125
|
+
text,
|
|
126
|
+
self[104] or DEFAULT_FONT_SIZE
|
|
127
|
+
)
|
|
128
|
+
self[103] = text
|
|
129
|
+
end
|
|
130
|
+
},
|
|
131
|
+
true
|
|
132
|
+
)
|
|
133
|
+
__TS__SetDescriptor(
|
|
134
|
+
TextTag.prototype,
|
|
135
|
+
"fontSize",
|
|
136
|
+
{
|
|
137
|
+
get = function(self)
|
|
138
|
+
return self[104] or DEFAULT_FONT_SIZE
|
|
139
|
+
end,
|
|
140
|
+
set = function(self, fontSize)
|
|
141
|
+
setTextTagText(
|
|
142
|
+
ensureHandle(self),
|
|
143
|
+
self[103] or "",
|
|
144
|
+
fontSize
|
|
145
|
+
)
|
|
146
|
+
self[104] = fontSize
|
|
147
|
+
end
|
|
148
|
+
},
|
|
149
|
+
true
|
|
150
|
+
)
|
|
151
|
+
__TS__SetDescriptor(
|
|
152
|
+
TextTag.prototype,
|
|
153
|
+
"color",
|
|
154
|
+
{
|
|
155
|
+
get = function(self)
|
|
156
|
+
return self[105] or Color.white
|
|
157
|
+
end,
|
|
158
|
+
set = function(self, color)
|
|
159
|
+
setTextTagColor(
|
|
160
|
+
ensureHandle(self),
|
|
161
|
+
color.r,
|
|
162
|
+
color.g,
|
|
163
|
+
color.b,
|
|
164
|
+
color.a
|
|
165
|
+
)
|
|
166
|
+
self[105] = color
|
|
167
|
+
end
|
|
168
|
+
},
|
|
169
|
+
true
|
|
170
|
+
)
|
|
171
|
+
__TS__SetDescriptor(
|
|
172
|
+
TextTag.prototype,
|
|
173
|
+
"unit",
|
|
174
|
+
{
|
|
175
|
+
get = function(self)
|
|
176
|
+
return self[100]
|
|
177
|
+
end,
|
|
178
|
+
set = function(self, unit)
|
|
179
|
+
if unit ~= nil then
|
|
180
|
+
setTextTagPosUnit(
|
|
181
|
+
ensureHandle(self),
|
|
182
|
+
unit.handle,
|
|
183
|
+
0
|
|
184
|
+
)
|
|
185
|
+
self[106] = nil
|
|
186
|
+
self[107] = nil
|
|
187
|
+
unitTextTags[self] = true
|
|
188
|
+
elseif self[100] ~= nil then
|
|
189
|
+
local unit = self[100]
|
|
190
|
+
local x = unit.x
|
|
191
|
+
local y = unit.y
|
|
192
|
+
setTextTagPos(
|
|
193
|
+
ensureHandle(self),
|
|
194
|
+
x,
|
|
195
|
+
y,
|
|
196
|
+
0
|
|
197
|
+
)
|
|
198
|
+
self[106] = x
|
|
199
|
+
self[107] = y
|
|
200
|
+
unitTextTags[self] = nil
|
|
201
|
+
end
|
|
202
|
+
self[100] = unit
|
|
203
|
+
end
|
|
204
|
+
},
|
|
205
|
+
true
|
|
206
|
+
)
|
|
207
|
+
__TS__SetDescriptor(
|
|
208
|
+
TextTag.prototype,
|
|
209
|
+
"x",
|
|
210
|
+
{
|
|
211
|
+
get = function(self)
|
|
212
|
+
local ____self__106_2 = self[106]
|
|
213
|
+
if ____self__106_2 == nil then
|
|
214
|
+
local ____opt_0 = self[100]
|
|
215
|
+
____self__106_2 = ____opt_0 and ____opt_0.x
|
|
216
|
+
end
|
|
217
|
+
return ____self__106_2 or 0
|
|
218
|
+
end,
|
|
219
|
+
set = function(self, x)
|
|
220
|
+
local ____ensureHandle_result_6 = ensureHandle(self)
|
|
221
|
+
local ____x_7 = x
|
|
222
|
+
local ____self__107_5 = self[107]
|
|
223
|
+
if ____self__107_5 == nil then
|
|
224
|
+
local ____opt_3 = self[100]
|
|
225
|
+
____self__107_5 = ____opt_3 and ____opt_3.y
|
|
226
|
+
end
|
|
227
|
+
setTextTagPos(____ensureHandle_result_6, ____x_7, ____self__107_5 or 0, 0)
|
|
228
|
+
self[106] = x
|
|
229
|
+
self[100] = nil
|
|
230
|
+
unitTextTags[self] = nil
|
|
231
|
+
end
|
|
232
|
+
},
|
|
233
|
+
true
|
|
234
|
+
)
|
|
235
|
+
__TS__SetDescriptor(
|
|
236
|
+
TextTag.prototype,
|
|
237
|
+
"y",
|
|
238
|
+
{
|
|
239
|
+
get = function(self)
|
|
240
|
+
local ____self__107_10 = self[107]
|
|
241
|
+
if ____self__107_10 == nil then
|
|
242
|
+
local ____opt_8 = self[100]
|
|
243
|
+
____self__107_10 = ____opt_8 and ____opt_8.y
|
|
244
|
+
end
|
|
245
|
+
return ____self__107_10 or 0
|
|
246
|
+
end,
|
|
247
|
+
set = function(self, y)
|
|
248
|
+
local ____ensureHandle_result_14 = ensureHandle(self)
|
|
249
|
+
local ____self__106_13 = self[106]
|
|
250
|
+
if ____self__106_13 == nil then
|
|
251
|
+
local ____opt_11 = self[100]
|
|
252
|
+
____self__106_13 = ____opt_11 and ____opt_11.x
|
|
253
|
+
end
|
|
254
|
+
setTextTagPos(____ensureHandle_result_14, ____self__106_13 or 0, y, 0)
|
|
255
|
+
self[107] = y
|
|
256
|
+
self[100] = nil
|
|
257
|
+
unitTextTags[self] = nil
|
|
258
|
+
end
|
|
259
|
+
},
|
|
260
|
+
true
|
|
261
|
+
)
|
|
45
262
|
TextTag.BASE = {
|
|
46
263
|
fadepoint = 2,
|
|
47
264
|
lifespan = 3,
|
|
@@ -106,4 +323,26 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
|
|
|
106
323
|
lifespan = 5
|
|
107
324
|
}
|
|
108
325
|
)
|
|
326
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
327
|
+
for textTag in pairs(unitTextTags) do
|
|
328
|
+
local unit = textTag[100].handle
|
|
329
|
+
local x = getUnitX(unit)
|
|
330
|
+
local y = getUnitY(unit)
|
|
331
|
+
local ____, ____, isInView = worldCoordinatesToFrame(
|
|
332
|
+
x,
|
|
333
|
+
y,
|
|
334
|
+
getUnitFlyHeight(unit) + getTerrainZ(x, y)
|
|
335
|
+
)
|
|
336
|
+
if isInView and not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) then
|
|
337
|
+
setTextTagPosUnit(
|
|
338
|
+
ensureHandle(textTag),
|
|
339
|
+
unit,
|
|
340
|
+
textTag[102].offsetZ
|
|
341
|
+
)
|
|
342
|
+
elseif textTag[101] ~= nil then
|
|
343
|
+
destroyTextTag(textTag[101])
|
|
344
|
+
textTag[101] = nil
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
end)
|
|
109
348
|
return ____exports
|
package/engine/unit.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import "./internal/unit";
|
|
3
|
+
import "./internal/unit/order";
|
|
3
4
|
import "./internal/unit/ability";
|
|
4
5
|
import "./internal/unit/allowed-targets";
|
|
5
6
|
import "./internal/unit/buff";
|
|
6
7
|
import "./internal/unit/expiration-timer";
|
|
8
|
+
import "./internal/unit/item";
|
|
7
9
|
import "./internal/unit+ability";
|
|
8
10
|
import "./internal/unit+damage";
|
|
9
11
|
import "./internal/unit+rally";
|
|
@@ -15,6 +17,8 @@ import "./internal/unit-missile-launch";
|
|
|
15
17
|
import "./internal/unit/ghost-counter";
|
|
16
18
|
import "./internal/unit/invulnerability-counter";
|
|
17
19
|
import "./internal/unit/detach-missiles";
|
|
20
|
+
import "./internal/unit/main-selected";
|
|
21
|
+
import "./internal/unit/add-item-to-slot-init";
|
|
18
22
|
import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
|
|
19
23
|
export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
|
|
20
24
|
export * from "./internal/unit+damage";
|
package/engine/unit.lua
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
require("engine.internal.unit")
|
|
3
|
+
require("engine.internal.unit.order")
|
|
3
4
|
require("engine.internal.unit.ability")
|
|
4
5
|
require("engine.internal.unit.allowed-targets")
|
|
5
6
|
require("engine.internal.unit.buff")
|
|
6
7
|
require("engine.internal.unit.expiration-timer")
|
|
8
|
+
require("engine.internal.unit.item")
|
|
7
9
|
require("engine.internal.unit+ability")
|
|
8
10
|
require("engine.internal.unit+damage")
|
|
9
11
|
require("engine.internal.unit+rally")
|
|
@@ -15,6 +17,8 @@ require("engine.internal.unit-missile-launch")
|
|
|
15
17
|
require("engine.internal.unit.ghost-counter")
|
|
16
18
|
require("engine.internal.unit.invulnerability-counter")
|
|
17
19
|
require("engine.internal.unit.detach-missiles")
|
|
20
|
+
require("engine.internal.unit.main-selected")
|
|
21
|
+
require("engine.internal.unit.add-item-to-slot-init")
|
|
18
22
|
require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
|
|
19
23
|
do
|
|
20
24
|
local ____unit = require("engine.internal.unit")
|
package/index.d.ts
CHANGED
package/index.lua
CHANGED
package/lualib_bundle.lua
CHANGED
|
@@ -1094,6 +1094,11 @@ do
|
|
|
1094
1094
|
end
|
|
1095
1095
|
if __TS__StringIncludes(_VERSION, "Lua 5.0") then
|
|
1096
1096
|
return debug.traceback(("[Level " .. tostring(level)) .. "]")
|
|
1097
|
+
elseif _VERSION == "Lua 5.1" then
|
|
1098
|
+
return string.sub(
|
|
1099
|
+
debug.traceback("", level),
|
|
1100
|
+
2
|
|
1101
|
+
)
|
|
1097
1102
|
else
|
|
1098
1103
|
return debug.traceback(nil, level)
|
|
1099
1104
|
end
|
|
@@ -1102,7 +1107,7 @@ do
|
|
|
1102
1107
|
return function(self)
|
|
1103
1108
|
local description = getDescription(self)
|
|
1104
1109
|
local caller = debug.getinfo(3, "f")
|
|
1105
|
-
local isClassicLua = __TS__StringIncludes(_VERSION, "Lua 5.0")
|
|
1110
|
+
local isClassicLua = __TS__StringIncludes(_VERSION, "Lua 5.0")
|
|
1106
1111
|
if isClassicLua or caller and caller.func ~= error then
|
|
1107
1112
|
return description
|
|
1108
1113
|
else
|
|
@@ -1126,7 +1131,7 @@ do
|
|
|
1126
1131
|
end
|
|
1127
1132
|
self.message = message
|
|
1128
1133
|
self.name = "Error"
|
|
1129
|
-
self.stack = getErrorStack(nil,
|
|
1134
|
+
self.stack = getErrorStack(nil, __TS__New)
|
|
1130
1135
|
local metatable = getmetatable(self)
|
|
1131
1136
|
if metatable and not metatable.__errorToStringPatched then
|
|
1132
1137
|
metatable.__errorToStringPatched = true
|
package/net/socket.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Event } from "../event";
|
|
3
3
|
import { Player } from "../core/types/player";
|
|
4
|
+
declare const enum SocketPropertyKey {
|
|
5
|
+
ID = 0,
|
|
6
|
+
CHUNK_ID = 1
|
|
7
|
+
}
|
|
4
8
|
export declare class Socket {
|
|
5
|
-
private readonly
|
|
9
|
+
private readonly [SocketPropertyKey.ID];
|
|
10
|
+
private readonly [SocketPropertyKey.CHUNK_ID];
|
|
6
11
|
readonly onMessage: Event<[Player, string]>;
|
|
7
12
|
constructor();
|
|
8
13
|
send(data: string): void;
|
|
9
14
|
}
|
|
15
|
+
export {};
|
package/net/socket.lua
CHANGED
|
@@ -7,6 +7,11 @@ local Event = ____event.Event
|
|
|
7
7
|
local ____network = require("network")
|
|
8
8
|
local send = ____network.send
|
|
9
9
|
local onReceive = ____network.onReceive
|
|
10
|
+
local MAX_PAYLOAD_LENGTH = ____network.MAX_PAYLOAD_LENGTH
|
|
11
|
+
local ____math = require("math")
|
|
12
|
+
local ceil = ____math.ceil
|
|
13
|
+
local stringSub = string.sub
|
|
14
|
+
local tableConcat = table.concat
|
|
10
15
|
local nextId = 0
|
|
11
16
|
____exports.Socket = __TS__Class()
|
|
12
17
|
local Socket = ____exports.Socket
|
|
@@ -14,13 +19,49 @@ Socket.name = "Socket"
|
|
|
14
19
|
function Socket.prototype.____constructor(self)
|
|
15
20
|
local ____tostring_0 = tostring
|
|
16
21
|
nextId = nextId + 1
|
|
17
|
-
self
|
|
22
|
+
self[0] = ____tostring_0(nextId)
|
|
23
|
+
local ____tostring_1 = tostring
|
|
24
|
+
nextId = nextId + 1
|
|
25
|
+
self[1] = ____tostring_1(nextId)
|
|
18
26
|
self.onMessage = __TS__New(Event)
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
local chunksByPlayer = {}
|
|
28
|
+
onReceive[self[0]]:addListener(function(sender, data)
|
|
29
|
+
local chunks = chunksByPlayer[sender]
|
|
30
|
+
if chunks ~= nil then
|
|
31
|
+
chunks[#chunks + 1] = data
|
|
32
|
+
Event.invoke(
|
|
33
|
+
self.onMessage,
|
|
34
|
+
sender,
|
|
35
|
+
tableConcat(chunks)
|
|
36
|
+
)
|
|
37
|
+
chunksByPlayer[sender] = nil
|
|
38
|
+
else
|
|
39
|
+
Event.invoke(self.onMessage, sender, data)
|
|
40
|
+
end
|
|
41
|
+
end)
|
|
42
|
+
onReceive[self[1]]:addListener(function(sender, data)
|
|
43
|
+
local chunks = chunksByPlayer[sender]
|
|
44
|
+
if chunks == nil then
|
|
45
|
+
chunks = {}
|
|
46
|
+
chunksByPlayer[sender] = chunks
|
|
47
|
+
end
|
|
48
|
+
chunks[#chunks + 1] = data
|
|
21
49
|
end)
|
|
22
50
|
end
|
|
23
51
|
function Socket.prototype.send(self, data)
|
|
24
|
-
|
|
52
|
+
local chunks = ceil(#data / MAX_PAYLOAD_LENGTH) - 1
|
|
53
|
+
local offset = 1
|
|
54
|
+
for _ = 0, chunks - 1 do
|
|
55
|
+
local nextOffset = offset + MAX_PAYLOAD_LENGTH
|
|
56
|
+
send(
|
|
57
|
+
self[1],
|
|
58
|
+
stringSub(data, offset, nextOffset - 1)
|
|
59
|
+
)
|
|
60
|
+
offset = nextOffset
|
|
61
|
+
end
|
|
62
|
+
send(
|
|
63
|
+
self[0],
|
|
64
|
+
stringSub(data, offset)
|
|
65
|
+
)
|
|
25
66
|
end
|
|
26
67
|
return ____exports
|
package/network.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Event } from "./event";
|
|
3
3
|
import { Player } from "./core/types/player";
|
|
4
4
|
import { Operation, OperationContinue, OperationMonitor } from "./operation";
|
|
5
|
+
export declare const MAX_PAYLOAD_LENGTH = 255;
|
|
5
6
|
export declare const onReceive: {
|
|
6
7
|
[prefix: string]: Event<[Player, string]>;
|
|
7
8
|
} & {
|
package/network.lua
CHANGED
|
@@ -25,6 +25,7 @@ local concat = table.concat
|
|
|
25
25
|
local pack = string.pack
|
|
26
26
|
local sub = string.sub
|
|
27
27
|
local ____unpack = string.unpack
|
|
28
|
+
____exports.MAX_PAYLOAD_LENGTH = 255
|
|
28
29
|
____exports.onReceive = setmetatable(
|
|
29
30
|
{},
|
|
30
31
|
{__index = function(self, prefix)
|
|
@@ -42,11 +43,11 @@ ____exports.onReceive = setmetatable(
|
|
|
42
43
|
end}
|
|
43
44
|
)
|
|
44
45
|
function ____exports.send(id, payload)
|
|
45
|
-
if #payload >
|
|
46
|
+
if #payload > ____exports.MAX_PAYLOAD_LENGTH then
|
|
46
47
|
error(
|
|
47
48
|
__TS__New(
|
|
48
49
|
IllegalArgumentException,
|
|
49
|
-
"payload length must be <=
|
|
50
|
+
(("payload length must be <= " .. tostring(____exports.MAX_PAYLOAD_LENGTH)) .. ", but was ") .. tostring(#payload)
|
|
50
51
|
),
|
|
51
52
|
0
|
|
52
53
|
)
|
package/objutil/buff.lua
CHANGED
|
@@ -20,7 +20,6 @@ local AbilityDefinitionInnerFire = ____ability.AbilityDefinitionInnerFire
|
|
|
20
20
|
local AbilityDefinitionSearingArrows = ____ability.AbilityDefinitionSearingArrows
|
|
21
21
|
local AbilityDefinitionSlowPoison = ____ability.AbilityDefinitionSlowPoison
|
|
22
22
|
local ____unit = require("core.types.unit")
|
|
23
|
-
local AttackType = ____unit.AttackType
|
|
24
23
|
local DamageType = ____unit.DamageType
|
|
25
24
|
local Unit = ____unit.Unit
|
|
26
25
|
local ____dummy = require("core.dummy")
|
|
@@ -756,14 +755,14 @@ for ____, pointDispelAbilityId in ipairs(pointDispelAbilityIds) do
|
|
|
756
755
|
end)
|
|
757
756
|
end
|
|
758
757
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
759
|
-
if event.amount == 0 and event.attackType ==
|
|
758
|
+
if event.amount == 0 and event.attackType == 0 and event.damageType == DamageType.NORMAL and not event.isAttack then
|
|
760
759
|
Timer:run(function()
|
|
761
760
|
checkBuffs(target, true, source)
|
|
762
761
|
end)
|
|
763
762
|
end
|
|
764
763
|
end)
|
|
765
|
-
Unit.
|
|
766
|
-
if item.
|
|
764
|
+
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
765
|
+
if item.isPowerUp and item:hasAbility(fourCC("APdi")) then
|
|
767
766
|
end
|
|
768
767
|
end)
|
|
769
768
|
return ____exports
|
package/objutil/unit.lua
CHANGED
|
@@ -11,6 +11,8 @@ local ____exports = {}
|
|
|
11
11
|
local ____object = require("objutil.object")
|
|
12
12
|
local ObjectDefinition = ____object.ObjectDefinition
|
|
13
13
|
local idgen = require("objutil.idgen")
|
|
14
|
+
local ____config = require("config")
|
|
15
|
+
local WarscriptConfig = ____config.WarscriptConfig
|
|
14
16
|
local attackTypes = setmetatable(
|
|
15
17
|
{
|
|
16
18
|
normal = "normal",
|
|
@@ -593,6 +595,9 @@ __TS__SetDescriptor(
|
|
|
593
595
|
end,
|
|
594
596
|
set = function(self, v)
|
|
595
597
|
self:setStringField("umdl", v)
|
|
598
|
+
if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
599
|
+
self:setStringField("upor", "")
|
|
600
|
+
end
|
|
596
601
|
end
|
|
597
602
|
},
|
|
598
603
|
true
|
|
@@ -606,6 +611,9 @@ __TS__SetDescriptor(
|
|
|
606
611
|
end,
|
|
607
612
|
set = function(self, v)
|
|
608
613
|
self.object:setField("umdl:hd", v)
|
|
614
|
+
if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
|
|
615
|
+
self.object:setField("upor:hd", "")
|
|
616
|
+
end
|
|
609
617
|
end
|
|
610
618
|
},
|
|
611
619
|
true
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "warscript",
|
|
4
|
-
"version": "0.0.1-dev.
|
|
4
|
+
"version": "0.0.1-dev.ea102a7",
|
|
5
5
|
"description": "A typescript library for Warcraft III using Warpack.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"warcraft",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@warscript/language-extensions": "^0.0.1",
|
|
25
25
|
"@warscript/tstl-plugin": "^0.0.4",
|
|
26
26
|
"lua-types": "^2.13.1",
|
|
27
|
-
"warpack": "0.0.1-dev.
|
|
27
|
+
"warpack": "0.0.1-dev.251db08"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
package/patch-lua.d.ts
ADDED
|
File without changes
|
package/patch-lua.lua
ADDED
package/patch-lualib.lua
CHANGED
|
@@ -3,7 +3,7 @@ local lualib = _G.require("lualib_bundle")
|
|
|
3
3
|
local next = _G.next
|
|
4
4
|
local ____type = _G.type
|
|
5
5
|
lualib.__TS__ArrayIsArray = function(value)
|
|
6
|
-
return ____type(value) == "table" and (value[1] ~= nil or (
|
|
6
|
+
return ____type(value) == "table" and (value[1] ~= nil or (next(value)) == nil) and value.constructor == nil
|
|
7
7
|
end
|
|
8
8
|
local __TS__SetDescriptor = lualib.__TS__SetDescriptor
|
|
9
9
|
lualib.__TS__ObjectDefineProperty = function(target, key, desc)
|
package/property.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Player } from "./core/types/player";
|
|
3
|
+
import { Event } from "./event";
|
|
4
|
+
export declare class PersistentPropertiesConfig {
|
|
5
|
+
static defaultFileName: string;
|
|
6
|
+
}
|
|
7
|
+
declare const enum PropertyPropertyKey {
|
|
8
|
+
DEFAULT_VALUE = 0,
|
|
9
|
+
VALUE = 1,
|
|
10
|
+
IS_CHANGED = 2
|
|
11
|
+
}
|
|
12
|
+
export declare class Property<T> {
|
|
13
|
+
readonly valueChangeEvent: Event<[newValue: T, oldValue: T]>;
|
|
14
|
+
private [PropertyPropertyKey.DEFAULT_VALUE];
|
|
15
|
+
private [PropertyPropertyKey.VALUE];
|
|
16
|
+
private [PropertyPropertyKey.IS_CHANGED]?;
|
|
17
|
+
constructor(defaultValue: T);
|
|
18
|
+
get defaultValue(): T;
|
|
19
|
+
set defaultValue(defaultValue: T);
|
|
20
|
+
get value(): T;
|
|
21
|
+
set value(value: T);
|
|
22
|
+
get isChanged(): boolean;
|
|
23
|
+
reset(): boolean;
|
|
24
|
+
set(value: T): boolean;
|
|
25
|
+
get(): T;
|
|
26
|
+
}
|
|
27
|
+
declare const enum PlayerPropertyPropertyKey {
|
|
28
|
+
DEFAULT_VALUE = 0,
|
|
29
|
+
VALUE_BY_PLAYER = 1,
|
|
30
|
+
IS_CHANGED_BY_PLAYER = 2
|
|
31
|
+
}
|
|
32
|
+
export declare class PlayerProperty<T> {
|
|
33
|
+
readonly valueChangeEvent: Event<[player: Player, newValue: T, oldValue: T]>;
|
|
34
|
+
private readonly [PlayerPropertyPropertyKey.DEFAULT_VALUE];
|
|
35
|
+
private readonly [PlayerPropertyPropertyKey.VALUE_BY_PLAYER];
|
|
36
|
+
private readonly [PlayerPropertyPropertyKey.IS_CHANGED_BY_PLAYER];
|
|
37
|
+
constructor(defaultValue: T);
|
|
38
|
+
isChanged(player: Player): boolean;
|
|
39
|
+
reset(player: Player): boolean;
|
|
40
|
+
set(player: Player, value: T): boolean;
|
|
41
|
+
get(player: Player): T;
|
|
42
|
+
}
|
|
43
|
+
export declare class PersistentProperty<T extends undefined | boolean | number | string> extends Property<T> {
|
|
44
|
+
readonly id: number;
|
|
45
|
+
constructor(id: number, defaultValue: T, valueChangeEventListener?: (newValue: T, oldValue: T) => void);
|
|
46
|
+
reset(): boolean;
|
|
47
|
+
set(value: T): boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare class PersistentPlayerProperty<T extends string | number | boolean> extends PlayerProperty<T> {
|
|
50
|
+
readonly id: number;
|
|
51
|
+
constructor(id: number, initialValue: T, valueChangeEventListener?: (player: Player, newValue: T, oldValue: T) => void);
|
|
52
|
+
reset(player: Player): boolean;
|
|
53
|
+
set(player: Player, value: T): boolean;
|
|
54
|
+
}
|
|
55
|
+
export {};
|