warscript 0.0.1-dev.4721022 → 0.0.1-dev.475a555
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/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +85 -44
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- package/decl/native.d.ts +840 -786
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +6 -3
- package/engine/behaviour/ability/damage.lua +24 -36
- package/engine/behaviour/ability/emulate-impact.lua +16 -2
- package/engine/behaviour/ability.d.ts +4 -1
- package/engine/behaviour/ability.lua +7 -5
- package/engine/behaviour/unit.d.ts +17 -0
- package/engine/behaviour/unit.lua +114 -4
- package/engine/buff.d.ts +13 -8
- package/engine/buff.lua +81 -50
- package/engine/internal/ability.d.ts +4 -0
- package/engine/internal/ability.lua +17 -0
- package/engine/internal/item/ability.lua +12 -10
- package/engine/internal/item.d.ts +5 -2
- package/engine/internal/item.lua +75 -3
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- 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 +5 -0
- package/engine/internal/unit/ability.lua +14 -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 +1 -1
- package/engine/internal/unit.d.ts +27 -4
- package/engine/internal/unit.lua +184 -37
- 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/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/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/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/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/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 +11 -11
- package/engine/object-data/entry/ability-type.lua +31 -10
- 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/sound-preset.d.ts +17 -0
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +2 -2
- package/engine/object-data/entry/unit-type.lua +94 -84
- package/engine/object-field/ability.d.ts +1 -1
- package/engine/object-field/unit.d.ts +46 -3
- package/engine/object-field/unit.lua +173 -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/text-tag.d.ts +12 -1
- package/engine/text-tag.lua +44 -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 +1 -0
- package/utility/functions.lua +1 -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 +1 -0
- package/utility/lua-sets.lua +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/text-tag.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Color } from "../core/types/color";
|
|
3
|
+
import { Unit } from "./internal/unit";
|
|
4
|
+
import { AbstractDestroyable, Destructor } from "../destroyable";
|
|
3
5
|
export type TextTagPreset = {
|
|
4
6
|
fadepoint: number;
|
|
5
7
|
lifespan: number;
|
|
@@ -10,9 +12,16 @@ export type TextTagPreset = {
|
|
|
10
12
|
velocityY: number;
|
|
11
13
|
color: Color;
|
|
12
14
|
};
|
|
13
|
-
|
|
15
|
+
declare const enum TextTagPropertyKey {
|
|
16
|
+
UNIT = 100,
|
|
17
|
+
CONFIGURATION = 101
|
|
18
|
+
}
|
|
19
|
+
export declare class TextTag extends AbstractDestroyable {
|
|
14
20
|
private readonly handle;
|
|
21
|
+
private [TextTagPropertyKey.UNIT]?;
|
|
22
|
+
private [TextTagPropertyKey.CONFIGURATION]?;
|
|
15
23
|
private constructor();
|
|
24
|
+
protected onDestroy(): Destructor;
|
|
16
25
|
static BASE: Readonly<TextTagPreset>;
|
|
17
26
|
static BASH: Readonly<TextTagPreset>;
|
|
18
27
|
static CRITICAL_STRIKE: Readonly<TextTagPreset>;
|
|
@@ -22,4 +31,6 @@ export declare class TextTag {
|
|
|
22
31
|
static MISS: Readonly<TextTagPreset>;
|
|
23
32
|
static SHADOW_STRIKE: Readonly<TextTagPreset>;
|
|
24
33
|
static flash(configuration: Readonly<TextTagPreset>, text: string, x: number, y: number, z?: number): void;
|
|
34
|
+
static create(configuration: Readonly<TextTagPreset>, text: string, unit: Unit): TextTag;
|
|
25
35
|
}
|
|
36
|
+
export {};
|
package/engine/text-tag.lua
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
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
|
|
3
5
|
local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
|
|
4
6
|
local ____exports = {}
|
|
5
7
|
local ____color = require("core.types.color")
|
|
6
8
|
local Color = ____color.Color
|
|
9
|
+
local ____timer = require("core.types.timer")
|
|
10
|
+
local Timer = ____timer.Timer
|
|
11
|
+
local ____destroyable = require("destroyable")
|
|
12
|
+
local AbstractDestroyable = ____destroyable.AbstractDestroyable
|
|
7
13
|
local createTextTag = CreateTextTag
|
|
8
14
|
local destroyTextTag = DestroyTextTag
|
|
9
15
|
local setTextTagText = SetTextTagText
|
|
@@ -18,16 +24,7 @@ local setTextTagAge = SetTextTagAge
|
|
|
18
24
|
local setTextTagLifespan = SetTextTagLifespan
|
|
19
25
|
local setTextTagFadepoint = SetTextTagFadepoint
|
|
20
26
|
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)
|
|
27
|
+
local function applyConfiguration(textTag, configuration)
|
|
31
28
|
setTextTagFadepoint(textTag, configuration.fadepoint)
|
|
32
29
|
setTextTagLifespan(textTag, configuration.lifespan)
|
|
33
30
|
local color = configuration.color
|
|
@@ -42,6 +39,38 @@ function TextTag.flash(self, configuration, text, x, y, z)
|
|
|
42
39
|
setTextTagPermanent(textTag, false)
|
|
43
40
|
setTextTagVisibility(textTag, true)
|
|
44
41
|
end
|
|
42
|
+
local unitTextTags = setmetatable({}, {__mode = "k"})
|
|
43
|
+
____exports.TextTag = __TS__Class()
|
|
44
|
+
local TextTag = ____exports.TextTag
|
|
45
|
+
TextTag.name = "TextTag"
|
|
46
|
+
__TS__ClassExtends(TextTag, AbstractDestroyable)
|
|
47
|
+
function TextTag.prototype.____constructor(self, handle)
|
|
48
|
+
AbstractDestroyable.prototype.____constructor(self)
|
|
49
|
+
self.handle = handle
|
|
50
|
+
end
|
|
51
|
+
function TextTag.prototype.onDestroy(self)
|
|
52
|
+
destroyTextTag(self.handle)
|
|
53
|
+
unitTextTags[self] = nil
|
|
54
|
+
return AbstractDestroyable.prototype.onDestroy(self)
|
|
55
|
+
end
|
|
56
|
+
function TextTag.flash(self, configuration, text, x, y, z)
|
|
57
|
+
local textTag = createTextTag()
|
|
58
|
+
setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
|
|
59
|
+
setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
|
|
60
|
+
applyConfiguration(textTag, configuration)
|
|
61
|
+
end
|
|
62
|
+
function TextTag.create(self, configuration, text, unit)
|
|
63
|
+
local handle = createTextTag()
|
|
64
|
+
setTextTagText(handle, text, DEFAULT_FONT_SIZE)
|
|
65
|
+
setTextTagPosUnit(handle, unit.handle, configuration.offsetZ)
|
|
66
|
+
applyConfiguration(handle, configuration)
|
|
67
|
+
setTextTagPermanent(handle, true)
|
|
68
|
+
local textTag = __TS__New(____exports.TextTag, handle)
|
|
69
|
+
textTag[100] = unit.handle
|
|
70
|
+
textTag[101] = configuration
|
|
71
|
+
unitTextTags[textTag] = true
|
|
72
|
+
return textTag
|
|
73
|
+
end
|
|
45
74
|
TextTag.BASE = {
|
|
46
75
|
fadepoint = 2,
|
|
47
76
|
lifespan = 3,
|
|
@@ -106,4 +135,9 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
|
|
|
106
135
|
lifespan = 5
|
|
107
136
|
}
|
|
108
137
|
)
|
|
138
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
139
|
+
for textTag in pairs(unitTextTags) do
|
|
140
|
+
setTextTagPosUnit(textTag.handle, textTag[100], textTag[101].offsetZ)
|
|
141
|
+
end
|
|
142
|
+
end)
|
|
109
143
|
return ____exports
|
package/engine/unit.d.ts
CHANGED
package/engine/unit.lua
CHANGED
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,7 +755,7 @@ 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)
|
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.475a555",
|
|
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.fa5e065"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
package/utility/arrays.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare const mapToLuaSet: {
|
|
|
22
22
|
<T, R extends AnyNotNil>(array: readonly T[], transform: (value: T) => R): LuaSet<R>;
|
|
23
23
|
<T, K extends KeysOfType<T, AnyNotNil>>(array: readonly T[], key: K): LuaSet<T[K] extends AnyNotNil ? T[K] : never>;
|
|
24
24
|
};
|
|
25
|
+
export declare const flatten: <T>(array: readonly (readonly T[])[]) => T[];
|
|
25
26
|
export declare const flatMap: {
|
|
26
27
|
<T, R>(array: readonly T[], transform: (value: T) => readonly R[]): R[];
|
|
27
28
|
<T, K extends KeysOfType<T, readonly any[]>>(array: readonly T[], key: K): (T[K] extends readonly (infer R)[] ? R : never)[];
|
package/utility/arrays.lua
CHANGED
|
@@ -3,6 +3,8 @@ local __TS__New = ____lualib.__TS__New
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____exception = require("exception")
|
|
5
5
|
local IllegalArgumentException = ____exception.IllegalArgumentException
|
|
6
|
+
local ____functions = require("utility.functions")
|
|
7
|
+
local identity = ____functions.identity
|
|
6
8
|
local mathMax = math.max
|
|
7
9
|
local mathMin = math.min
|
|
8
10
|
local select = _G.select
|
|
@@ -120,6 +122,7 @@ ____exports.mapToLuaSet = function(array, transform)
|
|
|
120
122
|
end
|
|
121
123
|
return result
|
|
122
124
|
end
|
|
125
|
+
____exports.flatten = function(array) return ____exports.flatMap(array, identity) end
|
|
123
126
|
____exports.flatMap = function(array, transform)
|
|
124
127
|
local result = {}
|
|
125
128
|
local k = 1
|
package/utility/functions.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export declare const apply: {
|
|
|
3
3
|
<T, ConsumerParameters extends any[]>(object: T, consumer: (value: T, ...parameters: ConsumerParameters) => void, ...parameters: ConsumerParameters): T;
|
|
4
4
|
<T, ConsumerParameters extends any[], K extends KeysOfType<T, (...parameters: ConsumerParameters) => void>>(object: T, key: K, ...parameters: ConsumerParameters): T;
|
|
5
5
|
};
|
|
6
|
+
export declare const identity: <T>(value: T) => T;
|
package/utility/functions.lua
CHANGED
package/utility/linked-set.d.ts
CHANGED
|
@@ -50,6 +50,7 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
|
|
|
50
50
|
protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>;
|
|
51
51
|
}
|
|
52
52
|
export declare const emptyLinkedSet: <T extends AnyNotNil>() => ReadonlyLinkedSet<T>;
|
|
53
|
+
export declare const mutableLinkedSet: <T extends AnyNotNil>() => LinkedSet<T>;
|
|
53
54
|
export declare const mutableLinkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => LinkedSet<T>;
|
|
54
55
|
export declare const mutableLinkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LinkedSet<T>;
|
|
55
56
|
export declare const linkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => ReadonlyLinkedSet<T>;
|
package/utility/linked-set.lua
CHANGED
|
@@ -177,6 +177,9 @@ local EMPTY_LINKED_SET = __TS__New(EmptyLinkedSet)
|
|
|
177
177
|
____exports.emptyLinkedSet = function()
|
|
178
178
|
return EMPTY_LINKED_SET
|
|
179
179
|
end
|
|
180
|
+
____exports.mutableLinkedSet = function()
|
|
181
|
+
return __TS__New(____exports.LinkedSet)
|
|
182
|
+
end
|
|
180
183
|
____exports.mutableLinkedSetOf = function(...)
|
|
181
184
|
local linkedSet = __TS__New(____exports.LinkedSet)
|
|
182
185
|
for i = 1, select("#", ...) do
|
package/utility/lua-maps.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Flatten, TupleOf } from "./types";
|
|
3
|
+
export declare const emptyLuaMap: <K extends AnyNotNil, V>() => ReadonlyLuaMap<K, V>;
|
|
4
|
+
export declare const mutableLuaMap: <K extends AnyNotNil, V>() => LuaMap<K, V>;
|
|
5
|
+
export declare const mutableWeakLuaMap: <K extends AnyNotNil, V>() => LuaMap<K, V>;
|
|
3
6
|
export declare const luaMapOf: <K extends AnyNotNil, V>(...pairs: Flatten<TupleOf<[K, V], 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40>>) => LuaMap<K, V>;
|
|
4
7
|
export declare const luaMapInvert: <K extends AnyNotNil, V extends AnyNotNil>(luaMap: LuaMap<K, V>) => LuaMap<V, K>;
|
|
5
8
|
export declare const mapValues: <K extends AnyNotNil, V1, V2>(luaMap: LuaMap<K, V1>, transform: (value: V1) => V2) => LuaMap<K, V2>;
|
|
9
|
+
export declare const getOrPut: <K extends AnyNotNil, V>(luaMap: LuaMap<K, V>, key: K, defaultValue: () => V) => V;
|
package/utility/lua-maps.lua
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local select = _G.select
|
|
3
|
+
local setmetatable = _G.setmetatable
|
|
4
|
+
local weakKeysMetatable = {__mode = "k"}
|
|
5
|
+
local EMPTY_LUA_MAP = {}
|
|
6
|
+
____exports.emptyLuaMap = function()
|
|
7
|
+
return EMPTY_LUA_MAP
|
|
8
|
+
end
|
|
9
|
+
____exports.mutableLuaMap = function()
|
|
10
|
+
return {}
|
|
11
|
+
end
|
|
12
|
+
____exports.mutableWeakLuaMap = function()
|
|
13
|
+
return setmetatable({}, weakKeysMetatable)
|
|
14
|
+
end
|
|
3
15
|
____exports.luaMapOf = function(...)
|
|
4
16
|
local luaMap = {}
|
|
5
17
|
for i = 1, select("#", ...), 2 do
|
|
@@ -22,4 +34,12 @@ ____exports.mapValues = function(luaMap, transform)
|
|
|
22
34
|
end
|
|
23
35
|
return result
|
|
24
36
|
end
|
|
37
|
+
____exports.getOrPut = function(luaMap, key, defaultValue)
|
|
38
|
+
local value = luaMap[key]
|
|
39
|
+
if value == nil then
|
|
40
|
+
value = defaultValue()
|
|
41
|
+
luaMap[key] = value
|
|
42
|
+
end
|
|
43
|
+
return value
|
|
44
|
+
end
|
|
25
45
|
return ____exports
|
package/utility/lua-sets.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
export declare const mutableLuaSet: <T extends AnyNotNil>() => LuaSet<T>;
|
|
2
3
|
export declare const luaSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LuaSet<T>;
|
|
3
4
|
export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LuaSet<T>;
|
|
4
5
|
export declare const luaSetIntersection: <T extends AnyNotNil>(firstLuaSet: ReadonlyLuaSet<T>, secondLuaSet: ReadonlyLuaSet<T>) => LuaSet<T>;
|
package/utility/lua-sets.lua
CHANGED
package/core/types/order.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** @noSelfInFile */
|
|
2
|
-
import { Unit } from "./unit";
|
|
3
|
-
import { Item } from "./item";
|
|
4
|
-
import { Destructable } from "./destructable";
|
|
5
|
-
export type Order = {
|
|
6
|
-
id: number;
|
|
7
|
-
startX: number;
|
|
8
|
-
startY: number;
|
|
9
|
-
} & ({
|
|
10
|
-
type: "immediate";
|
|
11
|
-
} | {
|
|
12
|
-
type: "point";
|
|
13
|
-
targetX: number;
|
|
14
|
-
targetY: number;
|
|
15
|
-
} | {
|
|
16
|
-
type: "target";
|
|
17
|
-
target: Unit | Item | Destructable;
|
|
18
|
-
});
|
|
19
|
-
declare module "../../engine/internal/unit" {
|
|
20
|
-
interface Unit {
|
|
21
|
-
readonly currentOrder: Order;
|
|
22
|
-
readonly lastOrder: Order;
|
|
23
|
-
issueOrder(order: Order): void;
|
|
24
|
-
}
|
|
25
|
-
}
|
package/core/types/order.lua
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
local ____lualib = require("lualib_bundle")
|
|
2
|
-
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
3
|
-
local ____exports = {}
|
|
4
|
-
local ____unit = require("core.types.unit")
|
|
5
|
-
local Unit = ____unit.Unit
|
|
6
|
-
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
7
|
-
local orders = setmetatable({}, {__mode = "k"})
|
|
8
|
-
Unit.onImmediateOrder:addListener(function(unit, orderId)
|
|
9
|
-
orders[unit] = {id = orderId, startX = unit.x, startY = unit.y, type = "immediate"}
|
|
10
|
-
end)
|
|
11
|
-
Unit.onPointOrder:addListener(function(unit, orderId, x, y)
|
|
12
|
-
orders[unit] = {
|
|
13
|
-
id = orderId,
|
|
14
|
-
startX = unit.x,
|
|
15
|
-
startY = unit.y,
|
|
16
|
-
type = "point",
|
|
17
|
-
targetX = x,
|
|
18
|
-
targetY = y
|
|
19
|
-
}
|
|
20
|
-
end)
|
|
21
|
-
Unit.onTargetOrder:addListener(function(unit, orderId, target)
|
|
22
|
-
orders[unit] = {
|
|
23
|
-
id = orderId,
|
|
24
|
-
startX = unit.x,
|
|
25
|
-
startY = unit.y,
|
|
26
|
-
type = "target",
|
|
27
|
-
target = target
|
|
28
|
-
}
|
|
29
|
-
end)
|
|
30
|
-
__TS__ObjectDefineProperty(
|
|
31
|
-
Unit.prototype,
|
|
32
|
-
"currentOrder",
|
|
33
|
-
{get = function(self)
|
|
34
|
-
local currentOrderId = getUnitCurrentOrder(self.handle)
|
|
35
|
-
local lastOrder = orders[self]
|
|
36
|
-
return lastOrder and (lastOrder.id == currentOrderId or currentOrderId == orderId("patrolAI") and lastOrder.id == orderId("patrol")) and lastOrder or ({id = 0, type = "immediate"})
|
|
37
|
-
end}
|
|
38
|
-
)
|
|
39
|
-
__TS__ObjectDefineProperty(
|
|
40
|
-
Unit.prototype,
|
|
41
|
-
"lastOrder",
|
|
42
|
-
{get = function(self)
|
|
43
|
-
return orders[self] or ({id = 0, type = "immediate"})
|
|
44
|
-
end}
|
|
45
|
-
)
|
|
46
|
-
Unit.prototype.issueOrder = function(self, order)
|
|
47
|
-
if order.type == "immediate" then
|
|
48
|
-
IssueImmediateOrderById(self.handle, order.id)
|
|
49
|
-
elseif order.type == "point" then
|
|
50
|
-
IssuePointOrderById(self.handle, order.id, order.targetX, order.targetY)
|
|
51
|
-
else
|
|
52
|
-
IssueTargetOrderById(self.handle, order.id, order.target.handle)
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
return ____exports
|