warscript 0.0.1-dev.fd21394 → 0.0.1-dev.ff5dbcd
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/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 +13 -3
- package/core/types/effect.lua +116 -17
- package/core/types/frame.d.ts +8 -0
- package/core/types/frame.lua +93 -1
- package/core/types/sound.d.ts +1 -0
- package/core/types/sound.lua +36 -2
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/engine/behavior.d.ts +2 -2
- package/engine/behavior.lua +6 -6
- 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/damage.d.ts +33 -11
- package/engine/behaviour/ability/damage.lua +89 -31
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +28 -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 +15 -3
- package/engine/behaviour/ability.lua +93 -34
- package/engine/behaviour/unit.d.ts +5 -0
- package/engine/behaviour/unit.lua +20 -0
- package/engine/buff.d.ts +95 -38
- package/engine/buff.lua +424 -200
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +16 -13
- package/engine/internal/ability.lua +80 -76
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +56 -25
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -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 +10 -1
- package/engine/internal/unit/ability.lua +36 -14
- 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/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+ability.lua +2 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +24 -5
- package/engine/internal/unit.d.ts +26 -10
- package/engine/internal/unit.lua +162 -81
- 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/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -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/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- 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.d.ts +8 -6
- package/engine/object-data/entry/ability-type.lua +62 -27
- package/engine/object-data/entry/buff-type/applicable.lua +13 -37
- package/engine/object-data/entry/buff-type.d.ts +1 -1
- package/engine/object-data/entry/buff-type.lua +2 -2
- 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 +16 -0
- package/engine/object-data/entry/sound-preset.lua +36 -0
- package/engine/object-data/entry/unit-type.d.ts +8 -1
- package/engine/object-data/entry/unit-type.lua +61 -8
- 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 +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field.d.ts +2 -2
- package/engine/object-field.lua +4 -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/unit.d.ts +3 -0
- package/engine/unit.lua +3 -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 +1 -1
- 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/property.d.ts +55 -0
- package/property.lua +374 -0
- package/utility/arrays.d.ts +8 -1
- package/utility/arrays.lua +34 -3
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +11 -2
- package/utility/linked-set.lua +5 -2
- 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/binaryreader.d.ts
CHANGED
package/binaryreader.lua
CHANGED
|
@@ -9,6 +9,9 @@ function BinaryReader.prototype.____constructor(self, data)
|
|
|
9
9
|
self.i = 1
|
|
10
10
|
self.s = data
|
|
11
11
|
end
|
|
12
|
+
function BinaryReader.prototype.__tostring(self)
|
|
13
|
+
return self.s
|
|
14
|
+
end
|
|
12
15
|
function BinaryReader.prototype.read(self, fmt)
|
|
13
16
|
local value, pos = ____unpack(">" .. fmt, self.s, self.i)
|
|
14
17
|
self.i = pos
|
package/config.d.ts
ADDED
package/config.lua
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local ____exports = {}
|
|
4
|
+
____exports.WarscriptConfig = __TS__Class()
|
|
5
|
+
local WarscriptConfig = ____exports.WarscriptConfig
|
|
6
|
+
WarscriptConfig.name = "WarscriptConfig"
|
|
7
|
+
function WarscriptConfig.prototype.____constructor(self)
|
|
8
|
+
end
|
|
9
|
+
WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH = true
|
|
10
|
+
return ____exports
|
package/core/types/effect.d.ts
CHANGED
|
@@ -4,15 +4,23 @@ import { Widget } from "./widget";
|
|
|
4
4
|
import { PlayerColor } from "./playerColor";
|
|
5
5
|
declare const enum EffectPropertyKey {
|
|
6
6
|
COLOR = 100,
|
|
7
|
-
PITCH = 101
|
|
7
|
+
PITCH = 101,
|
|
8
|
+
ROLL = 102
|
|
8
9
|
}
|
|
9
10
|
export type EffectParameters = {
|
|
11
|
+
readonly delay?: number;
|
|
10
12
|
readonly scale?: number;
|
|
11
13
|
readonly color?: PlayerColor;
|
|
14
|
+
readonly pitch?: number;
|
|
15
|
+
readonly roll?: number;
|
|
16
|
+
readonly detached?: boolean;
|
|
17
|
+
readonly zOffset?: number;
|
|
18
|
+
readonly scaleZOffset?: boolean;
|
|
12
19
|
};
|
|
13
20
|
export declare class Effect extends Handle<jeffect> {
|
|
14
21
|
private [EffectPropertyKey.COLOR]?;
|
|
15
22
|
private [EffectPropertyKey.PITCH]?;
|
|
23
|
+
private [EffectPropertyKey.ROLL]?;
|
|
16
24
|
protected onDestroy(): HandleDestructor;
|
|
17
25
|
get color(): PlayerColor;
|
|
18
26
|
set color(color: PlayerColor);
|
|
@@ -20,11 +28,13 @@ export declare class Effect extends Handle<jeffect> {
|
|
|
20
28
|
set scale(scale: number);
|
|
21
29
|
get pitch(): number;
|
|
22
30
|
set pitch(pitch: number);
|
|
31
|
+
get roll(): number;
|
|
32
|
+
set roll(roll: number);
|
|
23
33
|
static create<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), model: string, pos: Vec2): T;
|
|
24
34
|
static createTarget<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), model: string, target: Widget, attachPoint: string): T;
|
|
25
35
|
static flash(modelPath: string, ...args: [
|
|
26
|
-
...pointOrWidget: [x: number, y: number] | [widget: Widget, attachmentPoint
|
|
27
|
-
...parametersOrDuration: [
|
|
36
|
+
...pointOrWidget: [x: number, y: number] | [widget: Widget, attachmentPoint?: string],
|
|
37
|
+
...parametersOrDuration: [parametersOrDuration?: EffectParameters | number] | [duration?: number, parameters?: EffectParameters]
|
|
28
38
|
]): void;
|
|
29
39
|
static flashTarget(model: string, target: Widget, attachPoint: string, duration?: number): void;
|
|
30
40
|
}
|
package/core/types/effect.lua
CHANGED
|
@@ -2,8 +2,9 @@ local ____lualib = require("lualib_bundle")
|
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
4
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
5
6
|
local ____exports = {}
|
|
6
|
-
local dummyPlayer
|
|
7
|
+
local dummyPlayer, flash
|
|
7
8
|
local ____handle = require("core.types.handle")
|
|
8
9
|
local Handle = ____handle.Handle
|
|
9
10
|
local ____playerColor = require("core.types.playerColor")
|
|
@@ -12,6 +13,8 @@ local ____player = require("core.types.player")
|
|
|
12
13
|
local Player = ____player.Player
|
|
13
14
|
local ____timer = require("core.types.timer")
|
|
14
15
|
local Timer = ____timer.Timer
|
|
16
|
+
local ____unit = require("engine.internal.unit")
|
|
17
|
+
local Unit = ____unit.Unit
|
|
15
18
|
local ____pairs = _G.pairs
|
|
16
19
|
local select = _G.select
|
|
17
20
|
local mathRad = math.rad
|
|
@@ -22,10 +25,28 @@ local getSpecialEffectScale = BlzGetSpecialEffectScale
|
|
|
22
25
|
local playSpecialEffect = BlzPlaySpecialEffect
|
|
23
26
|
local setSpecialEffectScale = BlzSetSpecialEffectScale
|
|
24
27
|
local setSpecialEffectPitch = BlzSetSpecialEffectPitch
|
|
28
|
+
local setSpecialEffectRoll = BlzSetSpecialEffectRoll
|
|
25
29
|
local setSpecialEffectColorByPlayer = BlzSetSpecialEffectColorByPlayer
|
|
26
30
|
local specialEffectAddSubAnimation = BlzSpecialEffectAddSubAnimation
|
|
27
31
|
local specialEffectClearSubAnimations = BlzSpecialEffectClearSubAnimations
|
|
28
32
|
local specialEffectRemoveSubAnimation = BlzSpecialEffectRemoveSubAnimation
|
|
33
|
+
local setSpecialEffectZ = BlzSetSpecialEffectZ
|
|
34
|
+
local getLocationZ = GetLocationZ
|
|
35
|
+
local getUnitZ = BlzGetUnitZ
|
|
36
|
+
local moveLocation = MoveLocation
|
|
37
|
+
local location = Location(0, 0)
|
|
38
|
+
local function setSpecialEffectPitchDegrees(effect, pitch)
|
|
39
|
+
setSpecialEffectPitch(
|
|
40
|
+
effect,
|
|
41
|
+
-mathRad(pitch)
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
local function setSpecialEffectRollDegrees(effect, roll)
|
|
45
|
+
setSpecialEffectRoll(
|
|
46
|
+
effect,
|
|
47
|
+
-mathRad(roll)
|
|
48
|
+
)
|
|
49
|
+
end
|
|
29
50
|
local animTypeByAnimationName = {
|
|
30
51
|
attack = ANIM_TYPE_ATTACK,
|
|
31
52
|
birth = ANIM_TYPE_BIRTH,
|
|
@@ -97,11 +118,18 @@ local function setSpecialEffectColor(effect, color)
|
|
|
97
118
|
setSpecialEffectColorByPlayer(effect, dummyPlayer.handle)
|
|
98
119
|
dummyPlayer.color = dummyColor
|
|
99
120
|
end
|
|
100
|
-
local setters = {scale = setSpecialEffectScale, color = setSpecialEffectColor}
|
|
121
|
+
local setters = {scale = setSpecialEffectScale, color = setSpecialEffectColor, pitch = setSpecialEffectPitchDegrees, roll = setSpecialEffectRollDegrees}
|
|
101
122
|
dummyPlayer = Player.neutralExtra
|
|
102
123
|
local temporaryEffects = {}
|
|
103
124
|
local temporaryEffectsDurations = {}
|
|
104
125
|
local temporaryEffectsCount = 0
|
|
126
|
+
local delayedEffectsModelPath = {}
|
|
127
|
+
local delayedEffectsXOrWidget = {}
|
|
128
|
+
local delayedEffectsYOrAttachmentPoint = {}
|
|
129
|
+
local delayedEffectsDuration = {}
|
|
130
|
+
local delayedEffectsParameters = {}
|
|
131
|
+
local delayedEffectsDelay = {}
|
|
132
|
+
local delayedEffectsCount = 0
|
|
105
133
|
local period = 1 / 32
|
|
106
134
|
Timer.onPeriod[period]:addListener(function()
|
|
107
135
|
local i = 1
|
|
@@ -110,12 +138,36 @@ Timer.onPeriod[period]:addListener(function()
|
|
|
110
138
|
if duration <= 0 then
|
|
111
139
|
destroyEffect(temporaryEffects[i])
|
|
112
140
|
temporaryEffects[i] = temporaryEffects[temporaryEffectsCount]
|
|
141
|
+
temporaryEffectsDurations[i] = temporaryEffectsDurations[temporaryEffectsCount]
|
|
113
142
|
temporaryEffectsCount = temporaryEffectsCount - 1
|
|
114
143
|
else
|
|
115
144
|
temporaryEffectsDurations[i] = duration - period
|
|
116
145
|
i = i + 1
|
|
117
146
|
end
|
|
118
147
|
end
|
|
148
|
+
i = 1
|
|
149
|
+
while i <= delayedEffectsCount do
|
|
150
|
+
local delay = delayedEffectsDelay[i]
|
|
151
|
+
if delay <= 0 then
|
|
152
|
+
flash(
|
|
153
|
+
delayedEffectsModelPath[i],
|
|
154
|
+
delayedEffectsXOrWidget[i],
|
|
155
|
+
delayedEffectsYOrAttachmentPoint[i],
|
|
156
|
+
delayedEffectsDuration[i],
|
|
157
|
+
delayedEffectsParameters[i]
|
|
158
|
+
)
|
|
159
|
+
delayedEffectsModelPath[i] = delayedEffectsModelPath[delayedEffectsCount]
|
|
160
|
+
delayedEffectsXOrWidget[i] = delayedEffectsXOrWidget[delayedEffectsCount]
|
|
161
|
+
delayedEffectsYOrAttachmentPoint[i] = delayedEffectsYOrAttachmentPoint[delayedEffectsCount]
|
|
162
|
+
delayedEffectsDuration[i] = delayedEffectsDuration[delayedEffectsCount]
|
|
163
|
+
delayedEffectsParameters[i] = delayedEffectsParameters[delayedEffectsCount]
|
|
164
|
+
delayedEffectsDelay[i] = delayedEffectsDelay[delayedEffectsCount]
|
|
165
|
+
delayedEffectsCount = delayedEffectsCount - 1
|
|
166
|
+
else
|
|
167
|
+
delayedEffectsDelay[i] = delay - period
|
|
168
|
+
i = i + 1
|
|
169
|
+
end
|
|
170
|
+
end
|
|
119
171
|
end)
|
|
120
172
|
____exports.Effect = __TS__Class()
|
|
121
173
|
local Effect = ____exports.Effect
|
|
@@ -136,19 +188,23 @@ function Effect.flash(self, modelPath, xOrWidget, yOrOrAttachmentPoint, paramete
|
|
|
136
188
|
parameters = parametersOrDuration
|
|
137
189
|
parametersOrDuration = nil
|
|
138
190
|
end
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
temporaryEffects[temporaryEffectsCount] = effect
|
|
148
|
-
temporaryEffectsDurations[temporaryEffectsCount] = parametersOrDuration
|
|
191
|
+
if parameters and (parameters.delay or 0) > 0 then
|
|
192
|
+
delayedEffectsCount = delayedEffectsCount + 1
|
|
193
|
+
delayedEffectsModelPath[delayedEffectsCount] = modelPath
|
|
194
|
+
delayedEffectsXOrWidget[delayedEffectsCount] = xOrWidget
|
|
195
|
+
delayedEffectsYOrAttachmentPoint[delayedEffectsCount] = yOrOrAttachmentPoint
|
|
196
|
+
delayedEffectsDuration[delayedEffectsCount] = parametersOrDuration
|
|
197
|
+
delayedEffectsParameters[delayedEffectsCount] = parameters
|
|
198
|
+
delayedEffectsDelay[delayedEffectsCount] = parameters.delay
|
|
149
199
|
return
|
|
150
200
|
end
|
|
151
|
-
|
|
201
|
+
flash(
|
|
202
|
+
modelPath,
|
|
203
|
+
xOrWidget,
|
|
204
|
+
yOrOrAttachmentPoint,
|
|
205
|
+
parametersOrDuration,
|
|
206
|
+
parameters
|
|
207
|
+
)
|
|
152
208
|
end
|
|
153
209
|
function Effect.flashTarget(self, model, target, attachPoint, duration)
|
|
154
210
|
local effect = addSpecialEffectTarget(model, target.handle, attachPoint)
|
|
@@ -197,13 +253,56 @@ __TS__SetDescriptor(
|
|
|
197
253
|
return self[101] or 0
|
|
198
254
|
end,
|
|
199
255
|
set = function(self, pitch)
|
|
200
|
-
|
|
201
|
-
self.handle,
|
|
202
|
-
-mathRad(pitch)
|
|
203
|
-
)
|
|
256
|
+
setSpecialEffectPitchDegrees(self.handle, pitch)
|
|
204
257
|
self[101] = pitch
|
|
205
258
|
end
|
|
206
259
|
},
|
|
207
260
|
true
|
|
208
261
|
)
|
|
262
|
+
__TS__SetDescriptor(
|
|
263
|
+
Effect.prototype,
|
|
264
|
+
"roll",
|
|
265
|
+
{
|
|
266
|
+
get = function(self)
|
|
267
|
+
return self[102] or 0
|
|
268
|
+
end,
|
|
269
|
+
set = function(self, roll)
|
|
270
|
+
setSpecialEffectRollDegrees(self.handle, roll)
|
|
271
|
+
self[102] = roll
|
|
272
|
+
end
|
|
273
|
+
},
|
|
274
|
+
true
|
|
275
|
+
)
|
|
276
|
+
flash = function(modelPath, xOrWidget, yOrOrAttachmentPoint, duration, parameters)
|
|
277
|
+
local coordinatesProvided = type(xOrWidget) == "number"
|
|
278
|
+
local isPositional = coordinatesProvided or (parameters and parameters.detached) == true
|
|
279
|
+
local x = not isPositional and 0 or (coordinatesProvided and xOrWidget or xOrWidget.x)
|
|
280
|
+
local y = not isPositional and 0 or (coordinatesProvided and yOrOrAttachmentPoint or xOrWidget.y)
|
|
281
|
+
local effect = isPositional and addSpecialEffect(modelPath, x, y) or addSpecialEffectTarget(modelPath, xOrWidget.handle, yOrOrAttachmentPoint or "origin")
|
|
282
|
+
if isPositional and not coordinatesProvided and (parameters and parameters.scale) == nil and __TS__InstanceOf(xOrWidget, Unit) then
|
|
283
|
+
setSpecialEffectScale(effect, xOrWidget.scale)
|
|
284
|
+
end
|
|
285
|
+
if parameters ~= nil then
|
|
286
|
+
for key, value in ____pairs(parameters) do
|
|
287
|
+
if key ~= "zOffset" and key ~= "detached" and key ~= "scaleZOffset" and key ~= "delay" then
|
|
288
|
+
setters[key](effect, value)
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
if isPositional and parameters.zOffset ~= nil then
|
|
292
|
+
moveLocation(location, x, y)
|
|
293
|
+
local z = __TS__InstanceOf(xOrWidget, Unit) and getLocationZ(location) + xOrWidget.flyHeight or getLocationZ(location)
|
|
294
|
+
BlzSetSpecialEffectZ(
|
|
295
|
+
effect,
|
|
296
|
+
z + parameters.zOffset * (parameters.scaleZOffset and getSpecialEffectScale(effect) or 1)
|
|
297
|
+
)
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
if duration ~= nil and duration > 0 then
|
|
301
|
+
temporaryEffectsCount = temporaryEffectsCount + 1
|
|
302
|
+
temporaryEffects[temporaryEffectsCount] = effect
|
|
303
|
+
temporaryEffectsDurations[temporaryEffectsCount] = duration
|
|
304
|
+
return
|
|
305
|
+
end
|
|
306
|
+
destroyEffect(effect)
|
|
307
|
+
end
|
|
209
308
|
return ____exports
|
package/core/types/frame.d.ts
CHANGED
|
@@ -25,9 +25,14 @@ export declare class Frame extends Handle<jframehandle> {
|
|
|
25
25
|
static readonly GAME_UI: Frame;
|
|
26
26
|
static readonly CONSOLE_UI: Frame;
|
|
27
27
|
static readonly CONSOLE_UI_BACKDROP: Frame;
|
|
28
|
+
private static readonly CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD;
|
|
29
|
+
static readonly CONSOLE_TOP_BAR: Frame;
|
|
30
|
+
static readonly CONSOLE_BOTTOM_BAR: Frame;
|
|
28
31
|
static readonly WORLD: Frame;
|
|
29
32
|
static readonly CHAT: Frame;
|
|
30
33
|
static readonly TIME_OF_DAY_CLOCK: Frame;
|
|
34
|
+
private static readonly SIMPLE_FRAME_TEST_CHILD;
|
|
35
|
+
static get uiScale(): number;
|
|
31
36
|
static get leftBorder(): Frame;
|
|
32
37
|
static get rightBorder(): Frame;
|
|
33
38
|
static get minX(): number;
|
|
@@ -75,6 +80,8 @@ export declare class Frame extends Handle<jframehandle> {
|
|
|
75
80
|
get onMouseLeave(): FrameEvent;
|
|
76
81
|
get onMouseUp(): FrameEvent;
|
|
77
82
|
get onMouseWheel(): FrameEvent<[number]>;
|
|
83
|
+
get mouseEnterLocalEvent(): Event;
|
|
84
|
+
get mouseLeaveLocalEvent(): Event;
|
|
78
85
|
get popupMenuItemChangeEvent(): FrameEvent<[
|
|
79
86
|
popupMenu: Frame,
|
|
80
87
|
previousValue: number,
|
|
@@ -104,6 +111,7 @@ export declare class Frame extends Handle<jframehandle> {
|
|
|
104
111
|
enable(): void;
|
|
105
112
|
addText(text: string): void;
|
|
106
113
|
clearAllPoints(): void;
|
|
114
|
+
get children(): Frame[];
|
|
107
115
|
getChild(index: number): Frame;
|
|
108
116
|
getChildrenCount(): number;
|
|
109
117
|
setSize(width: number, height: number): void;
|
package/core/types/frame.lua
CHANGED
|
@@ -62,8 +62,10 @@ local function updateBorders()
|
|
|
62
62
|
local width4by3 = (w - h / 600 * 800) / 2
|
|
63
63
|
local pxtodpi = 0.6 / h
|
|
64
64
|
BlzFrameSetAbsPoint(leftBorder, FRAMEPOINT_TOPLEFT, -width4by3 * pxtodpi, 0.6)
|
|
65
|
+
BlzFrameSetScale(leftBorder, 1)
|
|
65
66
|
BlzFrameSetSize(leftBorder, 0.001, 0.6)
|
|
66
67
|
BlzFrameSetAbsPoint(rightBorder, FRAMEPOINT_TOPRIGHT, (-width4by3 + w) * pxtodpi, 0.6)
|
|
68
|
+
BlzFrameSetScale(rightBorder, 1)
|
|
67
69
|
BlzFrameSetSize(rightBorder, 0.001, 0.6)
|
|
68
70
|
end
|
|
69
71
|
local worldFrame = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
|
|
@@ -120,6 +122,7 @@ do
|
|
|
120
122
|
FramePoint.BOTTOM = FRAMEPOINT_BOTTOM
|
|
121
123
|
FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
|
|
122
124
|
end
|
|
125
|
+
local tooltipByFrame = setmetatable({}, {__mode = "k"})
|
|
123
126
|
____exports.Frame = __TS__Class()
|
|
124
127
|
local Frame = ____exports.Frame
|
|
125
128
|
Frame.name = "Frame"
|
|
@@ -240,6 +243,7 @@ function Frame.prototype.setTextColor(self, color)
|
|
|
240
243
|
end
|
|
241
244
|
function Frame.prototype.setTooltip(self, tooltip)
|
|
242
245
|
BlzFrameSetTooltip(self.handle, tooltip.handle)
|
|
246
|
+
tooltipByFrame[self] = tooltip
|
|
243
247
|
end
|
|
244
248
|
function Frame.prototype.setMinMaxValue(self, minValue, maxValue)
|
|
245
249
|
BlzFrameSetMinMaxValue(self.handle, minValue, maxValue)
|
|
@@ -267,7 +271,16 @@ function Frame.createSimple(self, name, parent, createContext)
|
|
|
267
271
|
))
|
|
268
272
|
end
|
|
269
273
|
function Frame.create(self, name, parent, priority, createContext)
|
|
270
|
-
|
|
274
|
+
if parent == ____exports.Frame.CONSOLE_UI_BACKDROP then
|
|
275
|
+
local helper = ____exports.Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD.handle
|
|
276
|
+
BlzFrameSetScale(helper, 1)
|
|
277
|
+
local frame = BlzCreateFrame(name, helper, priority or 0, createContext or 0)
|
|
278
|
+
BlzFrameSetScale(helper, ____exports.Frame.uiScale)
|
|
279
|
+
BlzFrameSetParent(frame, ____exports.Frame.CONSOLE_UI_BACKDROP.handle)
|
|
280
|
+
return self:of(frame)
|
|
281
|
+
else
|
|
282
|
+
return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
|
|
283
|
+
end
|
|
271
284
|
end
|
|
272
285
|
function Frame.createByType(self, typeName, name, parent, inherits, createContext)
|
|
273
286
|
return self:of(BlzCreateFrameByType(
|
|
@@ -293,9 +306,20 @@ end
|
|
|
293
306
|
Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
|
|
294
307
|
Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
|
|
295
308
|
Frame.CONSOLE_UI_BACKDROP = ____exports.Frame:byName("ConsoleUIBackdrop")
|
|
309
|
+
Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD = ____exports.Frame:createByType("FRAME", "ConsoleUIBackdropUIScaleHelperChild", ____exports.Frame.CONSOLE_UI_BACKDROP)
|
|
310
|
+
Frame.CONSOLE_TOP_BAR = ____exports.Frame:byName("ConsoleTopBar")
|
|
311
|
+
Frame.CONSOLE_BOTTOM_BAR = ____exports.Frame:byName("ConsoleBottomBar")
|
|
296
312
|
Frame.WORLD = ____exports.Frame:byOrigin(ORIGIN_FRAME_WORLD_FRAME)
|
|
297
313
|
Frame.CHAT = ____exports.Frame:byOrigin(ORIGIN_FRAME_CHAT_MSG)
|
|
298
314
|
Frame.TIME_OF_DAY_CLOCK = ____exports.Frame.GAME_UI:getChild(5):getChild(0)
|
|
315
|
+
Frame.SIMPLE_FRAME_TEST_CHILD = ____exports.Frame:createByType("SIMPLEFRAME", "SimpleFrameTestParent", ____exports.Frame.CONSOLE_UI)
|
|
316
|
+
__TS__ObjectDefineProperty(
|
|
317
|
+
Frame,
|
|
318
|
+
"uiScale",
|
|
319
|
+
{get = function(self)
|
|
320
|
+
return ____exports.Frame.CONSOLE_BOTTOM_BAR.width / 0.8
|
|
321
|
+
end}
|
|
322
|
+
)
|
|
299
323
|
__TS__ObjectDefineProperty(
|
|
300
324
|
Frame,
|
|
301
325
|
"leftBorder",
|
|
@@ -597,6 +621,62 @@ __TS__SetDescriptor(
|
|
|
597
621
|
end},
|
|
598
622
|
true
|
|
599
623
|
)
|
|
624
|
+
__TS__SetDescriptor(
|
|
625
|
+
Frame.prototype,
|
|
626
|
+
"mouseEnterLocalEvent",
|
|
627
|
+
{get = function(self)
|
|
628
|
+
local event = __TS__New(Event)
|
|
629
|
+
if not (tooltipByFrame[self] ~= nil) then
|
|
630
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
|
|
631
|
+
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)
|
|
632
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
|
|
633
|
+
self:setTooltip(tooltip)
|
|
634
|
+
end
|
|
635
|
+
local isMouseInside = false
|
|
636
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
637
|
+
local tooltip = tooltipByFrame[self]
|
|
638
|
+
if tooltip and tooltip.visible then
|
|
639
|
+
if not isMouseInside then
|
|
640
|
+
isMouseInside = true
|
|
641
|
+
Event.invoke(event)
|
|
642
|
+
end
|
|
643
|
+
else
|
|
644
|
+
isMouseInside = false
|
|
645
|
+
end
|
|
646
|
+
end)
|
|
647
|
+
rawset(self, "mouseEnterLocalEvent", event)
|
|
648
|
+
return event
|
|
649
|
+
end},
|
|
650
|
+
true
|
|
651
|
+
)
|
|
652
|
+
__TS__SetDescriptor(
|
|
653
|
+
Frame.prototype,
|
|
654
|
+
"mouseLeaveLocalEvent",
|
|
655
|
+
{get = function(self)
|
|
656
|
+
local event = __TS__New(Event)
|
|
657
|
+
if not (tooltipByFrame[self] ~= nil) then
|
|
658
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
|
|
659
|
+
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)
|
|
660
|
+
____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
|
|
661
|
+
self:setTooltip(tooltip)
|
|
662
|
+
end
|
|
663
|
+
local isMouseInside = false
|
|
664
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
665
|
+
local tooltip = tooltipByFrame[self]
|
|
666
|
+
if tooltip and tooltip.visible then
|
|
667
|
+
isMouseInside = true
|
|
668
|
+
else
|
|
669
|
+
if isMouseInside then
|
|
670
|
+
isMouseInside = false
|
|
671
|
+
Event.invoke(event)
|
|
672
|
+
end
|
|
673
|
+
end
|
|
674
|
+
end)
|
|
675
|
+
rawset(self, "mouseLeaveLocalEvent", event)
|
|
676
|
+
return event
|
|
677
|
+
end},
|
|
678
|
+
true
|
|
679
|
+
)
|
|
600
680
|
__TS__SetDescriptor(
|
|
601
681
|
Frame.prototype,
|
|
602
682
|
"popupMenuItemChangeEvent",
|
|
@@ -699,6 +779,18 @@ __TS__SetDescriptor(
|
|
|
699
779
|
end},
|
|
700
780
|
true
|
|
701
781
|
)
|
|
782
|
+
__TS__SetDescriptor(
|
|
783
|
+
Frame.prototype,
|
|
784
|
+
"children",
|
|
785
|
+
{get = function(self)
|
|
786
|
+
local children = {}
|
|
787
|
+
for i = 0, self:getChildrenCount() - 1 do
|
|
788
|
+
children[i + 1] = self:getChild(i)
|
|
789
|
+
end
|
|
790
|
+
return children
|
|
791
|
+
end},
|
|
792
|
+
true
|
|
793
|
+
)
|
|
702
794
|
__TS__ObjectDefineProperty(
|
|
703
795
|
Frame,
|
|
704
796
|
"onKeyPress",
|
package/core/types/sound.d.ts
CHANGED
|
@@ -64,6 +64,7 @@ export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
|
|
|
64
64
|
export declare class Sound3D extends Sound {
|
|
65
65
|
static playAtPosition(fileName: string, preset: Sound3DPreset, x?: number, y?: number, z?: number): void;
|
|
66
66
|
static playOnUnit(fileName: string, preset: Sound3DPreset, unit: Unit): void;
|
|
67
|
+
static playFromLabel(label: string, preset: Sound3DPreset, ...positionOrUnit: [Unit] | [number, number, number?]): void;
|
|
67
68
|
static createAtPosition(fileName: string, preset: Sound3DPreset, x?: number, y?: number, z?: number): Sound3D;
|
|
68
69
|
static createOnUnit(fileName: string, preset: Sound3DPreset, unit: Unit): Sound3D;
|
|
69
70
|
}
|
package/core/types/sound.lua
CHANGED
|
@@ -6,14 +6,13 @@ local ____exports = {}
|
|
|
6
6
|
local ____handle = require("core.types.handle")
|
|
7
7
|
local Handle = ____handle.Handle
|
|
8
8
|
local createSound = CreateSound
|
|
9
|
+
local createSoundFromLabel = CreateSoundFromLabel
|
|
9
10
|
local setSoundPitch = SetSoundPitch
|
|
10
11
|
local setSoundChannel = SetSoundChannel
|
|
11
12
|
local setSoundPosition = SetSoundPosition
|
|
12
13
|
local setSoundVolume = SetSoundVolume
|
|
13
14
|
local setSoundDistances = SetSoundDistances
|
|
14
15
|
local setSoundDistanceCutoff = SetSoundDistanceCutoff
|
|
15
|
-
local setSoundConeAngles = SetSoundConeAngles
|
|
16
|
-
local setSoundConeOrientation = SetSoundConeOrientation
|
|
17
16
|
local startSound = StartSound
|
|
18
17
|
local setSoundPlayPosition = SetSoundPlayPosition
|
|
19
18
|
local stopSound = StopSound
|
|
@@ -153,6 +152,31 @@ local function createPreset3DSound(fileName, preset)
|
|
|
153
152
|
setSoundDistanceCutoff(sound, preset.distanceCutoff or 1500)
|
|
154
153
|
return sound
|
|
155
154
|
end
|
|
155
|
+
local function createPreset3DSoundFromLabel(label, preset)
|
|
156
|
+
local ____label_7 = label
|
|
157
|
+
local ____preset_looping_5 = preset.looping
|
|
158
|
+
if ____preset_looping_5 == nil then
|
|
159
|
+
____preset_looping_5 = false
|
|
160
|
+
end
|
|
161
|
+
local ____preset_stopWhenOutOfRange_6 = preset.stopWhenOutOfRange
|
|
162
|
+
if ____preset_stopWhenOutOfRange_6 == nil then
|
|
163
|
+
____preset_stopWhenOutOfRange_6 = true
|
|
164
|
+
end
|
|
165
|
+
local sound = createSoundFromLabel(
|
|
166
|
+
____label_7,
|
|
167
|
+
____preset_looping_5,
|
|
168
|
+
true,
|
|
169
|
+
____preset_stopWhenOutOfRange_6,
|
|
170
|
+
preset.fadeInRate or 12700,
|
|
171
|
+
preset.fadeOutRate or 12700
|
|
172
|
+
)
|
|
173
|
+
setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
|
|
174
|
+
setSoundVolume(sound, preset.volume or 127)
|
|
175
|
+
setSoundPitch(sound, preset.pitch or 1)
|
|
176
|
+
setSoundDistances(sound, preset.minDistance or 600, preset.maxDistance or 8000)
|
|
177
|
+
setSoundDistanceCutoff(sound, preset.distanceCutoff or 1500)
|
|
178
|
+
return sound
|
|
179
|
+
end
|
|
156
180
|
____exports.Sound = __TS__Class()
|
|
157
181
|
local Sound = ____exports.Sound
|
|
158
182
|
Sound.name = "Sound"
|
|
@@ -225,6 +249,16 @@ function Sound3D.playOnUnit(self, fileName, preset, unit)
|
|
|
225
249
|
startSound(sound)
|
|
226
250
|
killSoundWhenDone(sound)
|
|
227
251
|
end
|
|
252
|
+
function Sound3D.playFromLabel(self, label, preset, unitOrX, y, z)
|
|
253
|
+
local sound = createPreset3DSoundFromLabel(label, preset)
|
|
254
|
+
if type(unitOrX) ~= "number" then
|
|
255
|
+
attachSoundToUnit(sound, unitOrX.handle)
|
|
256
|
+
else
|
|
257
|
+
setSoundPosition(sound, unitOrX, y or 0, z or 0)
|
|
258
|
+
end
|
|
259
|
+
startSound(sound)
|
|
260
|
+
killSoundWhenDone(sound)
|
|
261
|
+
end
|
|
228
262
|
function Sound3D.createAtPosition(self, fileName, preset, x, y, z)
|
|
229
263
|
if x == nil then
|
|
230
264
|
x = 0
|
package/core/util.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ declare global {
|
|
|
54
54
|
function fourCC(id: string): number;
|
|
55
55
|
}
|
|
56
56
|
declare namespace inner {
|
|
57
|
-
const orderId: (id: "blink" | "stop" | "load" | "sleep" | "absorb" | "acidbomb" | "acolyteharvest" | "ambush" | "ancestralspirit" | "ancestralspirittarget" | "animatedead" | "antimagicshell" | "attack" | "attackground" | "attackonce" | "attributemodskill" | "auraunholy" | "auravampiric" | "autodispel" | "autodispeloff" | "autodispelon" | "autoentangle" | "autoentangleinstant" | "autoharvestgold" | "autoharvestlumber" | "avatar" | "avengerform" | "awaken" | "banish" | "barkskin" | "barkskinoff" | "barkskinon" | "battleroar" | "battlestations" | "bearform" | "berserk" | "blackarrow" | "blackarrowoff" | "blackarrowon" | "blight" | "blizzard" | "bloodlust" | "bloodlustoff" | "bloodluston" | "board" | "breathoffire" | "breathoffrost" | "build" | "burrow" | "cannibalize" | "carrionscarabs" | "carrionscarabsinstant" | "carrionscarabsoff" | "carrionscarabson" | "carrionswarm" | "chainlightning" | "channel" | "charm" | "chemicalrage" | "cloudoffog" | "clusterrockets" | "coldarrows" | "coldarrowstarg" | "controlmagic" | "corporealform" | "corrosivebreath" | "coupleinstant" | "coupletarget" | "creepanimatedead" | "creepdevour" | "creepheal" | "creephealoff" | "creephealon" | "creepthunderbolt" | "creepthunderclap" | "cripple" | "curse" | "curseoff" | "curseon" | "cyclone" | "darkconversion" | "darkportal" | "darkritual" | "darksummoning" | "deathanddecay" | "deathcoil" | "deathpact" | "decouple" | "defend" | "detectaoe" | "detonate" | "devour" | "devourmagic" | "disassociate" | "disenchant" | "dismount" | "dispel" | "divineshield" | "doom" | "drain" | "dreadlordinferno" | "dropitem" | "drunkenhaze" | "earthquake" | "eattree" | "elementalfury" | "ensnare" | "ensnareoff" | "ensnareon" | "entangle" | "entangleinstant" | "entanglingroots" | "etherealform" | "evileye" | "faeriefire" | "faeriefireoff" | "faeriefireon" | "fanofknives" | "farsight" | "fingerofdeath" | "firebolt" | "flamestrike" | "flamingarrows" | "flamingarrowstarg" | "flamingattack" | "flamingattacktarg" | "flare" | "forceboard" | "forceofnature" | "forkedlightning" | "freezingbreath" | "frenzy" | "frenzyoff" | "frenzyon" | "frostarmor" | "frostarmoroff" | "frostarmoron" | "frostnova" | "getitem" | "gold2lumber" | "grabtree" | "harvest" | "heal" | "healingspray" | "healingward" | "healingwave" | "healoff" | "healon" | "hex" | "holdposition" | "holybolt" | "howlofterror" | "humanbuild" | "immolation" | "impale" | "incineratearrow" | "incineratearrowoff" | "incineratearrowon" | "inferno" | "innerfire" | "innerfireoff" | "innerfireon" | "instant" | "invisibility" | "lavamonster" | "lightningshield" | "loadarcher" | "loadcorpse" | "loadcorpseinstant" | "locustswarm" | "lumber2gold" | "magicdefense" | "magicleash" | "magicundefense" | "manaburn" | "manaflareoff" | "manaflareon" | "manashieldoff" | "manashieldon" | "massteleport" | "mechanicalcritter" | "metamorphosis" | "militia" | "militiaconvert" | "militiaoff" | "militiaunconvert" | "mindrot" | "mirrorimage" | "monsoon" | "mount" | "mounthippogryph" | "move" | "moveAI" | "nagabuild" | "neutraldetectaoe" | "neutralinteract" | "neutralspell" | "nightelfbuild" | "orcbuild" | "parasite" | "parasiteoff" | "parasiteon" | "patrol" | "patrolAI" | "phaseshift" | "phaseshiftinstant" | "phaseshiftoff" | "phaseshifton" | "phoenixfire" | "phoenixmorph" | "poisonarrows" | "poisonarrowstarg" | "polymorph" | "possession" | "preservation" | "purge" | "rainofchaos" | "rainoffire" | "raisedead" | "raisedeadoff" | "raisedeadon" | "ravenform" | "recharge" | "rechargeoff" | "rechargeon" | "rejuvination" | "renew" | "renewoff" | "renewon" | "repair" | "repairoff" | "repairon" | "replenish" | "replenishlife" | "replenishlifeoff" | "replenishlifeon" | "replenishmana" | "replenishmanaoff" | "replenishmanaon" | "replenishoff" | "replenishon" | "request_hero" | "requestsacrifice" | "restoration" | "restorationoff" | "restorationon" | "resumebuild" | "resumeharvesting" | "resurrection" | "returnresources" | "revenge" | "revive" | "roar" | "robogoblin" | "root" | "sacrifice" | "sanctuary" | "scout" | "selfdestruct" | "selfdestructoff" | "selfdestructon" | "sentinel" | "follow" | "smart" | "setrally" | "shadowsight" | "shadowstrike" | "shockwave" | "silence" | "slow" | "slowoff" | "slowon" | "soulburn" | "soulpreservation" | "spellshield" | "spellshieldaoe" | "spellsteal" | "spellstealoff" | "spellstealon" | "spies" | "spiritlink" | "spiritofvengeance" | "spirittroll" | "spiritwolf" | "stampede" | "standdown" | "starfall" | "stasistrap" | "steal" | "stomp" | "stoneform" | "stunned" | "submerge" | "summonfactory" | "summongrizzly" | "summonphoenix" | "summonquillbeast" | "summonwareagle" | "tankdroppilot" | "tankloadpilot" | "tankpilot" | "taunt" | "thunderbolt" | "thunderclap" | "tornado" | "townbelloff" | "townbellon" | "tranquility" | "transmute" | "unavatar" | "unavengerform" | "unbearform" | "unburrow" | "uncoldarrows" | "uncorporealform" | "undeadbuild" | "undefend" | "undivineshield" | "unetherealform" | "unflamingarrows" | "unflamingattack" | "unholyfrenzy" | "unimmolation" | "unload" | "unloadall" | "unloadallcorpses" | "unloadallinstant" | "unpoisonarrows" | "unravenform" | "unrobogoblin" | "unroot" | "unstableconcoction" | "unstoneform" | "unsubmerge" | "unsummon" | "unwindwalk" | "vengeance" | "vengeanceinstant" | "vengeanceoff" | "vengeanceon" | "volcano" | "voodoo" | "ward" | "waterelemental" | "wateryminion" | "web" | "weboff" | "webon" | "whirlwind" | "windwalk" | "wispharvest") => number;
|
|
57
|
+
const orderId: (id: "blink" | "stop" | "load" | "sleep" | "absorb" | "acidbomb" | "acolyteharvest" | "ambush" | "ancestralspirit" | "ancestralspirittarget" | "animatedead" | "antimagicshell" | "attack" | "attackground" | "attackonce" | "attributemodskill" | "auraunholy" | "auravampiric" | "autodispel" | "autodispeloff" | "autodispelon" | "autoentangle" | "autoentangleinstant" | "autoharvestgold" | "autoharvestlumber" | "avatar" | "avengerform" | "awaken" | "banish" | "barkskin" | "barkskinoff" | "barkskinon" | "battleroar" | "battlestations" | "bearform" | "berserk" | "blackarrow" | "blackarrowoff" | "blackarrowon" | "blight" | "blizzard" | "bloodlust" | "bloodlustoff" | "bloodluston" | "board" | "breathoffire" | "breathoffrost" | "build" | "burrow" | "cannibalize" | "carrionscarabs" | "carrionscarabsinstant" | "carrionscarabsoff" | "carrionscarabson" | "carrionswarm" | "chainlightning" | "channel" | "charm" | "chemicalrage" | "cloudoffog" | "clusterrockets" | "coldarrows" | "coldarrowstarg" | "controlmagic" | "corporealform" | "corrosivebreath" | "coupleinstant" | "coupletarget" | "creepanimatedead" | "creepdevour" | "creepheal" | "creephealoff" | "creephealon" | "creepthunderbolt" | "creepthunderclap" | "cripple" | "curse" | "curseoff" | "curseon" | "cyclone" | "darkconversion" | "darkportal" | "darkritual" | "darksummoning" | "deathanddecay" | "deathcoil" | "deathpact" | "decouple" | "defend" | "detectaoe" | "detonate" | "devour" | "devourmagic" | "disassociate" | "disenchant" | "dismount" | "dispel" | "divineshield" | "doom" | "drain" | "dreadlordinferno" | "dropitem" | "moveslot0" | "moveslot1" | "moveslot2" | "moveslot3" | "moveslot4" | "moveslot5" | "useslot0" | "useslot1" | "useslot2" | "useslot3" | "useslot4" | "useslot5" | "drunkenhaze" | "earthquake" | "eattree" | "elementalfury" | "ensnare" | "ensnareoff" | "ensnareon" | "entangle" | "entangleinstant" | "entanglingroots" | "etherealform" | "evileye" | "faeriefire" | "faeriefireoff" | "faeriefireon" | "fanofknives" | "farsight" | "fingerofdeath" | "firebolt" | "flamestrike" | "flamingarrows" | "flamingarrowstarg" | "flamingattack" | "flamingattacktarg" | "flare" | "forceboard" | "forceofnature" | "forkedlightning" | "freezingbreath" | "frenzy" | "frenzyoff" | "frenzyon" | "frostarmor" | "frostarmoroff" | "frostarmoron" | "frostnova" | "getitem" | "gold2lumber" | "grabtree" | "harvest" | "heal" | "healingspray" | "healingward" | "healingwave" | "healoff" | "healon" | "hex" | "holdposition" | "holybolt" | "howlofterror" | "humanbuild" | "immolation" | "impale" | "incineratearrow" | "incineratearrowoff" | "incineratearrowon" | "inferno" | "innerfire" | "innerfireoff" | "innerfireon" | "instant" | "invisibility" | "lavamonster" | "lightningshield" | "loadarcher" | "loadcorpse" | "loadcorpseinstant" | "locustswarm" | "lumber2gold" | "magicdefense" | "magicleash" | "magicundefense" | "manaburn" | "manaflareoff" | "manaflareon" | "manashieldoff" | "manashieldon" | "massteleport" | "mechanicalcritter" | "metamorphosis" | "militia" | "militiaconvert" | "militiaoff" | "militiaunconvert" | "mindrot" | "mirrorimage" | "monsoon" | "mount" | "mounthippogryph" | "move" | "moveAI" | "nagabuild" | "neutraldetectaoe" | "neutralinteract" | "neutralspell" | "nightelfbuild" | "orcbuild" | "parasite" | "parasiteoff" | "parasiteon" | "patrol" | "patrolAI" | "phaseshift" | "phaseshiftinstant" | "phaseshiftoff" | "phaseshifton" | "phoenixfire" | "phoenixmorph" | "poisonarrows" | "poisonarrowstarg" | "polymorph" | "possession" | "preservation" | "purge" | "rainofchaos" | "rainoffire" | "raisedead" | "raisedeadoff" | "raisedeadon" | "ravenform" | "recharge" | "rechargeoff" | "rechargeon" | "rejuvination" | "renew" | "renewoff" | "renewon" | "repair" | "repairoff" | "repairon" | "replenish" | "replenishlife" | "replenishlifeoff" | "replenishlifeon" | "replenishmana" | "replenishmanaoff" | "replenishmanaon" | "replenishoff" | "replenishon" | "request_hero" | "requestsacrifice" | "restoration" | "restorationoff" | "restorationon" | "resumebuild" | "resumeharvesting" | "resurrection" | "returnresources" | "revenge" | "revive" | "roar" | "robogoblin" | "root" | "sacrifice" | "sanctuary" | "scout" | "selfdestruct" | "selfdestructoff" | "selfdestructon" | "sentinel" | "follow" | "smart" | "setrally" | "shadowsight" | "shadowstrike" | "shockwave" | "silence" | "slow" | "slowoff" | "slowon" | "soulburn" | "soulpreservation" | "spellshield" | "spellshieldaoe" | "spellsteal" | "spellstealoff" | "spellstealon" | "spies" | "spiritlink" | "spiritofvengeance" | "spirittroll" | "spiritwolf" | "stampede" | "standdown" | "starfall" | "stasistrap" | "steal" | "stomp" | "stoneform" | "stunned" | "submerge" | "summonfactory" | "summongrizzly" | "summonphoenix" | "summonquillbeast" | "summonwareagle" | "tankdroppilot" | "tankloadpilot" | "tankpilot" | "taunt" | "thunderbolt" | "thunderclap" | "tornado" | "townbelloff" | "townbellon" | "tranquility" | "transmute" | "unavatar" | "unavengerform" | "unbearform" | "unburrow" | "uncoldarrows" | "uncorporealform" | "undeadbuild" | "undefend" | "undivineshield" | "unetherealform" | "unflamingarrows" | "unflamingattack" | "unholyfrenzy" | "unimmolation" | "unload" | "unloadall" | "unloadallcorpses" | "unloadallinstant" | "unpoisonarrows" | "unravenform" | "unrobogoblin" | "unroot" | "unstableconcoction" | "unstoneform" | "unsubmerge" | "unsummon" | "unwindwalk" | "vengeance" | "vengeanceinstant" | "vengeanceoff" | "vengeanceon" | "volcano" | "voodoo" | "ward" | "waterelemental" | "wateryminion" | "web" | "weboff" | "webon" | "whirlwind" | "windwalk" | "wispharvest") => number;
|
|
58
58
|
}
|
|
59
59
|
declare global {
|
|
60
60
|
function orderId(...args: Parameters<typeof inner.orderId>): ReturnType<typeof inner.orderId>;
|
package/core/util.lua
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__StringPadEnd = ____lualib.__TS__StringPadEnd
|
|
1
3
|
local ____exports = {}
|
|
2
4
|
local ns = {}
|
|
3
5
|
do
|
|
@@ -14,7 +16,10 @@ do
|
|
|
14
16
|
if type(id) == "number" then
|
|
15
17
|
return id
|
|
16
18
|
else
|
|
17
|
-
local numid = string.unpack(
|
|
19
|
+
local numid = string.unpack(
|
|
20
|
+
">I4",
|
|
21
|
+
__TS__StringPadEnd(id, 4, "\0")
|
|
22
|
+
)
|
|
18
23
|
return numid
|
|
19
24
|
end
|
|
20
25
|
end
|
|
@@ -196,6 +201,18 @@ do
|
|
|
196
201
|
drain = 852487,
|
|
197
202
|
dreadlordinferno = 852224,
|
|
198
203
|
dropitem = 852001,
|
|
204
|
+
moveslot0 = 852002,
|
|
205
|
+
moveslot1 = 852003,
|
|
206
|
+
moveslot2 = 852004,
|
|
207
|
+
moveslot3 = 852005,
|
|
208
|
+
moveslot4 = 852006,
|
|
209
|
+
moveslot5 = 852007,
|
|
210
|
+
useslot0 = 852008,
|
|
211
|
+
useslot1 = 852009,
|
|
212
|
+
useslot2 = 852010,
|
|
213
|
+
useslot3 = 852011,
|
|
214
|
+
useslot4 = 852012,
|
|
215
|
+
useslot5 = 852013,
|
|
199
216
|
drunkenhaze = 852585,
|
|
200
217
|
earthquake = 852121,
|
|
201
218
|
eattree = 852146,
|
package/engine/behavior.d.ts
CHANGED
|
@@ -17,9 +17,9 @@ export declare abstract class Behavior<T extends AnyNotNil, PeriodicActionParame
|
|
|
17
17
|
protected startPeriodicAction(interval: number, ...parameters: PeriodicActionParameters): void;
|
|
18
18
|
protected stopPeriodicAction(): void;
|
|
19
19
|
static count<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, limit?: number): number;
|
|
20
|
-
static getFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[],
|
|
20
|
+
static getFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], CountOrPredicate extends [number] | [] | [(behavior: T, ...args: PredicateArgs) => boolean, ...PredicateArgs], PredicateArgs extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, ...[countOrPredicate]: CountOrPredicate): CountOrPredicate extends [number] ? T[] : T | undefined;
|
|
21
21
|
static getLast<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never): T | undefined;
|
|
22
|
-
static getAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never): T[];
|
|
22
|
+
static getAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], PredicateArgs extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, predicate?: (this: void, behavior: T, ...args: PredicateArgs) => boolean, ...predicateArgs: PredicateArgs): T[];
|
|
23
23
|
static forFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], ConsumerParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, count: number, consumer: (this: void, behavior: T, ...parameters: ConsumerParameters) => any, ...parameters: ConsumerParameters): number;
|
|
24
24
|
static forFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], K extends KeysOfType<T, (this: T, ...args: any) => any>>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, count: number, key: K, ...parameters: T[K] extends (this: T, ...args: any) => any ? Parameters<T[K]> : never): number;
|
|
25
25
|
static forAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], ConsumerParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, consumer: (this: void, behavior: T, ...parameters: ConsumerParameters) => unknown, ...parameters: ConsumerParameters): number;
|