warscript 0.0.1-dev.effa673 → 0.0.1-dev.f0a9ffe
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/core/types/sound.lua +5 -0
- package/core/types/timer.d.ts +8 -8
- package/core/types/timer.lua +25 -23
- package/decl/native.d.ts +844 -788
- package/engine/behavior.d.ts +2 -0
- package/engine/behavior.lua +53 -27
- package/engine/behaviour/ability/apply-buff.lua +1 -1
- package/engine/behaviour/ability/damage.d.ts +6 -3
- package/engine/behaviour/ability/damage.lua +24 -36
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.lua +8 -17
- package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +26 -0
- package/engine/behaviour/unit.lua +163 -4
- package/engine/buff.d.ts +2 -1
- package/engine/buff.lua +9 -3
- package/engine/internal/ability.d.ts +4 -0
- package/engine/internal/ability.lua +23 -0
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item.d.ts +5 -2
- package/engine/internal/item.lua +75 -3
- 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/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +62 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- 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-missile-launch.lua +9 -2
- package/engine/internal/unit.d.ts +23 -6
- package/engine/internal/unit.lua +233 -94
- 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 +1 -1
- package/engine/object-data/auxiliary/attachment-preset.lua +3 -2
- 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/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/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/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.lua +8 -3
- package/engine/object-data/entry/buff-type/applicable.lua +5 -0
- package/engine/object-data/entry/buff-type.d.ts +5 -11
- package/engine/object-data/entry/buff-type.lua +11 -27
- package/engine/object-data/entry/unit-type.d.ts +13 -4
- package/engine/object-data/entry/unit-type.lua +153 -85
- package/engine/object-field/ability.d.ts +1 -1
- package/engine/object-field/unit.d.ts +57 -3
- package/engine/object-field/unit.lua +207 -7
- package/engine/object-field.d.ts +15 -4
- package/engine/object-field.lua +184 -90
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -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 +175 -10
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/objutil/buff.lua +1 -2
- package/package.json +2 -2
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +3 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +3 -0
- package/utility/lua-maps.d.ts +4 -0
- package/utility/lua-maps.lua +20 -0
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/attributes.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
declare const marker: {};
|
|
2
3
|
export type Attribute<T> = {
|
|
3
4
|
readonly __attribute: unique symbol;
|
|
4
5
|
readonly __type: T;
|
|
6
|
+
readonly __marker: typeof marker;
|
|
5
7
|
} & symbol;
|
|
8
|
+
export declare const attribute: <T>() => Attribute<T>;
|
|
9
|
+
export declare const isAttribute: (value: unknown) => value is Attribute<unknown>;
|
|
6
10
|
export declare namespace Attribute {
|
|
7
11
|
const create: <T>() => Attribute<T>;
|
|
8
12
|
}
|
|
@@ -10,3 +14,4 @@ export declare class AttributesHolder {
|
|
|
10
14
|
readonly get: (<T>(attribute: Attribute<T>) => T | undefined) & LuaExtension<"TableGetMethod">;
|
|
11
15
|
readonly set: (<T>(attribute: Attribute<T>, value: T | undefined) => void) & LuaExtension<"TableSetMethod">;
|
|
12
16
|
}
|
|
17
|
+
export {};
|
package/attributes.lua
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local ____exports = {}
|
|
4
|
+
local marker = {}
|
|
5
|
+
____exports.attribute = function()
|
|
6
|
+
return {__marker = marker}
|
|
7
|
+
end
|
|
8
|
+
____exports.isAttribute = function(value)
|
|
9
|
+
return type(value) == "table" and rawget(value, "__marker") == marker
|
|
10
|
+
end
|
|
4
11
|
____exports.Attribute = {}
|
|
5
12
|
local Attribute = ____exports.Attribute
|
|
6
13
|
do
|
|
7
14
|
Attribute.create = function()
|
|
8
|
-
return {}
|
|
15
|
+
return {__marker = marker}
|
|
9
16
|
end
|
|
10
17
|
end
|
|
11
18
|
____exports.AttributesHolder = __TS__Class()
|
package/core/types/sound.lua
CHANGED
|
@@ -121,6 +121,11 @@ local customSoundPresetDataByLabel = postcompile(function()
|
|
|
121
121
|
end
|
|
122
122
|
return customSoundPresetDataByLabel
|
|
123
123
|
end)
|
|
124
|
+
---
|
|
125
|
+
-- @internal For use by internal systems only.
|
|
126
|
+
____exports.isSoundLabelCustom = function(label)
|
|
127
|
+
return customSoundPresetDataByLabel[label] ~= nil
|
|
128
|
+
end
|
|
124
129
|
local function createPresetSound(fileName, preset)
|
|
125
130
|
local ____fileName_1 = fileName
|
|
126
131
|
local ____preset_looping_0 = preset.looping
|
package/core/types/timer.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Event } from "../../event";
|
|
3
|
+
import { AbstractDestroyable, Destructor } from "../../destroyable";
|
|
3
4
|
declare const enum TimerPropertyKey {
|
|
4
5
|
HANDLE = 0,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
ARGS_LENGTH = 4
|
|
6
|
+
DESTROY_ON_EXPIRATION = 1,
|
|
7
|
+
CALLBACK = 2,
|
|
8
|
+
ARGS_LENGTH = 3
|
|
9
9
|
}
|
|
10
|
-
export declare class Timer
|
|
10
|
+
export declare class Timer extends AbstractDestroyable {
|
|
11
11
|
private readonly [TimerPropertyKey.HANDLE];
|
|
12
|
-
private [TimerPropertyKey.DESTROYED]?;
|
|
13
12
|
private [TimerPropertyKey.DESTROY_ON_EXPIRATION]?;
|
|
14
13
|
private [TimerPropertyKey.CALLBACK]?;
|
|
15
14
|
private [TimerPropertyKey.ARGS_LENGTH]?;
|
|
16
15
|
private constructor();
|
|
17
16
|
get handle(): jtimer;
|
|
18
17
|
start<Args extends any[]>(timeout: number, periodic: boolean, callback: (...args: Args) => void, ...args: Args): void;
|
|
18
|
+
onDestroy(): Destructor;
|
|
19
19
|
get elapsed(): number;
|
|
20
20
|
get remaining(): number;
|
|
21
21
|
get timeout(): number;
|
|
22
22
|
pause(): void;
|
|
23
23
|
resume(): void;
|
|
24
|
-
destroy(): void;
|
|
25
24
|
static create(): Timer;
|
|
26
|
-
static run<
|
|
25
|
+
static run<T, K extends KeysOfType<T, (this: T, ...args: any) => any>>(object: T, key: K, ...parameters: T[K] extends (this: T, ...args: any) => any ? Parameters<T[K]> : never): void;
|
|
26
|
+
static run<Args extends any[]>(callback: (this: void, ...args: Args) => void, ...args: Args): void;
|
|
27
27
|
static simple<Args extends any[]>(timeout: number, callback: (...args: Args) => void, ...args: Args): Timer;
|
|
28
28
|
static periodic<Args extends any[]>(period: number, callback: (this: void, timer: Timer, ...args: Args) => void, ...args: Args): Timer;
|
|
29
29
|
static counted(period: number, count: number, callback: (this: void, timer: Timer) => void): Timer;
|
package/core/types/timer.lua
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__New = ____lualib.__TS__New
|
|
3
3
|
local __TS__Class = ____lualib.__TS__Class
|
|
4
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
5
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
6
|
local __TS__Promise = ____lualib.__TS__Promise
|
|
6
7
|
local ____exports = {}
|
|
@@ -9,8 +10,8 @@ local Event = ____event.Event
|
|
|
9
10
|
local InitializingEvent = ____event.InitializingEvent
|
|
10
11
|
local ____objectPool = require("util.objectPool")
|
|
11
12
|
local ObjectPool = ____objectPool.ObjectPool
|
|
12
|
-
local
|
|
13
|
-
local
|
|
13
|
+
local ____destroyable = require("destroyable")
|
|
14
|
+
local AbstractDestroyable = ____destroyable.AbstractDestroyable
|
|
14
15
|
local createTimer = CreateTimer
|
|
15
16
|
local timerStart = TimerStart
|
|
16
17
|
local pauseTimer = PauseTimer
|
|
@@ -23,6 +24,7 @@ local getHandleId = GetHandleId
|
|
|
23
24
|
local ____pcall = _G.pcall
|
|
24
25
|
local ____print = _G.print
|
|
25
26
|
local select = _G.select
|
|
27
|
+
local ____type = _G.type
|
|
26
28
|
local safeCall = warpack.safeCall
|
|
27
29
|
local corunning = coroutine.running
|
|
28
30
|
local coresume = coroutine.resume
|
|
@@ -35,14 +37,14 @@ local timerByHandleId = {}
|
|
|
35
37
|
local function timerSafeCall()
|
|
36
38
|
local timer = timerByHandleId[getHandleId(getExpiredTimer())]
|
|
37
39
|
if timer ~= nil then
|
|
38
|
-
if timer[
|
|
40
|
+
if timer[1] then
|
|
39
41
|
timer:destroy()
|
|
40
42
|
end
|
|
41
|
-
local callback = timer[
|
|
43
|
+
local callback = timer[2]
|
|
42
44
|
if callback ~= nil then
|
|
43
45
|
safeCall(
|
|
44
46
|
callback,
|
|
45
|
-
____unpack(timer,
|
|
47
|
+
____unpack(timer, 3 + 1, 3 + (timer[3] or 0))
|
|
46
48
|
)
|
|
47
49
|
end
|
|
48
50
|
end
|
|
@@ -50,46 +52,46 @@ end
|
|
|
50
52
|
____exports.Timer = __TS__Class()
|
|
51
53
|
local Timer = ____exports.Timer
|
|
52
54
|
Timer.name = "Timer"
|
|
55
|
+
__TS__ClassExtends(Timer, AbstractDestroyable)
|
|
53
56
|
function Timer.prototype.____constructor(self)
|
|
57
|
+
AbstractDestroyable.prototype.____constructor(self)
|
|
54
58
|
self[0] = get()
|
|
55
59
|
timerByHandleId[getHandleId(self[0])] = self
|
|
56
60
|
end
|
|
57
61
|
function Timer.prototype.start(self, timeout, periodic, callback, ...)
|
|
58
|
-
self[
|
|
62
|
+
self[2] = callback
|
|
59
63
|
local argsLength = select("#", ...)
|
|
60
|
-
self[
|
|
64
|
+
self[3] = argsLength
|
|
61
65
|
for i = 1, argsLength do
|
|
62
|
-
self[
|
|
66
|
+
self[3 + i] = (select(i, ...))
|
|
63
67
|
end
|
|
64
68
|
timerStart(self.handle, timeout, periodic, timerSafeCall)
|
|
65
69
|
end
|
|
70
|
+
function Timer.prototype.onDestroy(self)
|
|
71
|
+
local handle = self[0]
|
|
72
|
+
timerByHandleId[getHandleId(handle)] = nil
|
|
73
|
+
release(handle)
|
|
74
|
+
return AbstractDestroyable.prototype.onDestroy(self)
|
|
75
|
+
end
|
|
66
76
|
function Timer.prototype.pause(self)
|
|
67
77
|
pauseTimer(self[0])
|
|
68
78
|
end
|
|
69
79
|
function Timer.prototype.resume(self)
|
|
70
80
|
resumeTimer(self[0])
|
|
71
81
|
end
|
|
72
|
-
function Timer.prototype.destroy(self)
|
|
73
|
-
if self[1] then
|
|
74
|
-
error(
|
|
75
|
-
__TS__New(IllegalStateException, "Double-destroy run for timer"),
|
|
76
|
-
0
|
|
77
|
-
)
|
|
78
|
-
end
|
|
79
|
-
local handle = self[0]
|
|
80
|
-
timerByHandleId[getHandleId(handle)] = nil
|
|
81
|
-
release(handle)
|
|
82
|
-
self[1] = true
|
|
83
|
-
end
|
|
84
82
|
function Timer.create(self)
|
|
85
83
|
return __TS__New(____exports.Timer)
|
|
86
84
|
end
|
|
87
|
-
function Timer.run(self,
|
|
88
|
-
|
|
85
|
+
function Timer.run(self, objectOrCallback, keyOrFirstArg, ...)
|
|
86
|
+
if ____type(objectOrCallback) == "function" then
|
|
87
|
+
____exports.Timer:simple(0, objectOrCallback, keyOrFirstArg, ...)
|
|
88
|
+
else
|
|
89
|
+
____exports.Timer:simple(0, objectOrCallback[keyOrFirstArg], objectOrCallback, ...)
|
|
90
|
+
end
|
|
89
91
|
end
|
|
90
92
|
function Timer.simple(self, timeout, callback, ...)
|
|
91
93
|
local timer = __TS__New(____exports.Timer)
|
|
92
|
-
timer[
|
|
94
|
+
timer[1] = true
|
|
93
95
|
timer:start(timeout, false, callback, ...)
|
|
94
96
|
return timer
|
|
95
97
|
end
|