warscript 0.0.1-dev.69da8a0 → 0.0.1-dev.6af7b85
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 +6 -0
- package/attributes.lua +17 -1
- 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 +3 -0
- package/core/types/frame.lua +130 -22
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +100 -25
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -1
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- 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 +5 -0
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +12 -3
- package/engine/behaviour/ability/damage.lua +33 -39
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -0
- 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 +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +28 -7
- package/engine/behaviour/ability.lua +137 -43
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +269 -6
- package/engine/buff.d.ts +119 -54
- package/engine/buff.lua +565 -298
- package/engine/internal/ability.d.ts +22 -3
- package/engine/internal/ability.lua +136 -13
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +16 -19
- package/engine/internal/item.lua +174 -94
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +8 -0
- package/engine/internal/unit/bonus.lua +50 -3
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/item.d.ts +1 -0
- package/engine/internal/unit/item.lua +8 -4
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +52 -14
- package/engine/internal/unit.d.ts +59 -27
- package/engine/internal/unit.lua +477 -281
- 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 -0
- package/engine/local-client.lua +100 -10
- 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/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.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/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +21 -17
- package/engine/object-data/entry/ability-type.lua +177 -40
- package/engine/object-data/entry/buff-type/applicable.lua +122 -137
- 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 +28 -2
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type.d.ts +3 -1
- package/engine/object-data/entry/item-type.lua +15 -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 +25 -5
- package/engine/object-data/entry/unit-type.lua +258 -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 +12 -6
- package/engine/object-field/ability.lua +10 -6
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +362 -117
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -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 +4 -2
- package/engine/standard/fields/ability.lua +4 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +8 -0
- package/engine/unit.lua +8 -0
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +11 -10
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/operation.lua +1 -4
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +10 -1
- package/utility/arrays.lua +45 -3
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- 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/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/utility/linked-set.lua
CHANGED
|
@@ -42,6 +42,23 @@ end
|
|
|
42
42
|
function LinkedSet.prototype.last(self)
|
|
43
43
|
return self.l
|
|
44
44
|
end
|
|
45
|
+
function LinkedSet.prototype.pop(self)
|
|
46
|
+
local f = self.f
|
|
47
|
+
if f == nil then
|
|
48
|
+
return nil
|
|
49
|
+
end
|
|
50
|
+
local n = self.n
|
|
51
|
+
local next = n[f]
|
|
52
|
+
n[f] = nil
|
|
53
|
+
self.f = next
|
|
54
|
+
if next ~= nil then
|
|
55
|
+
self.p[next] = nil
|
|
56
|
+
else
|
|
57
|
+
self.l = nil
|
|
58
|
+
end
|
|
59
|
+
self.s = self.s - 1
|
|
60
|
+
return f
|
|
61
|
+
end
|
|
45
62
|
function LinkedSet.prototype.next(self, key)
|
|
46
63
|
return self.n[key]
|
|
47
64
|
end
|
|
@@ -68,6 +85,23 @@ function LinkedSet.prototype.add(self, key)
|
|
|
68
85
|
end
|
|
69
86
|
return true
|
|
70
87
|
end
|
|
88
|
+
function LinkedSet.prototype.addBefore(self, value, key)
|
|
89
|
+
local n = self.n
|
|
90
|
+
local p = self.p
|
|
91
|
+
local previous = p[value]
|
|
92
|
+
if previous ~= nil then
|
|
93
|
+
n[previous] = key
|
|
94
|
+
p[key] = previous
|
|
95
|
+
elseif value == self.f then
|
|
96
|
+
self.f = key
|
|
97
|
+
else
|
|
98
|
+
return false
|
|
99
|
+
end
|
|
100
|
+
n[key] = value
|
|
101
|
+
p[value] = key
|
|
102
|
+
self.s = self.s + 1
|
|
103
|
+
return true
|
|
104
|
+
end
|
|
71
105
|
function LinkedSet.prototype.remove(self, key)
|
|
72
106
|
local n = self.n
|
|
73
107
|
local next = n[key]
|
|
@@ -107,8 +141,9 @@ function LinkedSet.prototype.forEach(self, action, ...)
|
|
|
107
141
|
local n = self.n
|
|
108
142
|
local c = self.f
|
|
109
143
|
while c ~= nil do
|
|
144
|
+
local next = n[c]
|
|
110
145
|
action(c, ...)
|
|
111
|
-
c =
|
|
146
|
+
c = next
|
|
112
147
|
end
|
|
113
148
|
end
|
|
114
149
|
function LinkedSet.prototype.toArray(self)
|
|
@@ -153,6 +188,9 @@ function LinkedSet.prototype.sortBy(self, selector)
|
|
|
153
188
|
self.f = array[1]
|
|
154
189
|
self.l = array[s]
|
|
155
190
|
end
|
|
191
|
+
function LinkedSet.prototype.__len(self)
|
|
192
|
+
return self.s
|
|
193
|
+
end
|
|
156
194
|
function LinkedSet.prototype.__pairs(self)
|
|
157
195
|
return linkedSetNext, {t = self.n, n = self.f}, nil
|
|
158
196
|
end
|
|
@@ -164,6 +202,7 @@ __TS__SetDescriptor(
|
|
|
164
202
|
end},
|
|
165
203
|
true
|
|
166
204
|
)
|
|
205
|
+
local emptyIteratorState = {t = {}}
|
|
167
206
|
local EmptyLinkedSet = __TS__Class()
|
|
168
207
|
EmptyLinkedSet.name = "EmptyLinkedSet"
|
|
169
208
|
__TS__ClassExtends(EmptyLinkedSet, ____exports.LinkedSet)
|
|
@@ -173,10 +212,19 @@ function EmptyLinkedSet.prototype.add(self)
|
|
|
173
212
|
0
|
|
174
213
|
)
|
|
175
214
|
end
|
|
215
|
+
function EmptyLinkedSet.prototype.__len(self)
|
|
216
|
+
return 0
|
|
217
|
+
end
|
|
218
|
+
function EmptyLinkedSet.prototype.__pairs(self)
|
|
219
|
+
return linkedSetNext, emptyIteratorState, nil
|
|
220
|
+
end
|
|
176
221
|
local EMPTY_LINKED_SET = __TS__New(EmptyLinkedSet)
|
|
177
222
|
____exports.emptyLinkedSet = function()
|
|
178
223
|
return EMPTY_LINKED_SET
|
|
179
224
|
end
|
|
225
|
+
____exports.mutableLinkedSet = function()
|
|
226
|
+
return __TS__New(____exports.LinkedSet)
|
|
227
|
+
end
|
|
180
228
|
____exports.mutableLinkedSetOf = function(...)
|
|
181
229
|
local linkedSet = __TS__New(____exports.LinkedSet)
|
|
182
230
|
for i = 1, select("#", ...) do
|
package/utility/lua-maps.d.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
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
|
-
export declare const luaMapInvert: <K extends AnyNotNil, V extends AnyNotNil>(luaMap:
|
|
5
|
-
export declare const
|
|
7
|
+
export declare const luaMapInvert: <K extends AnyNotNil, V extends AnyNotNil>(luaMap: ReadonlyLuaMap<K, V | undefined | null>) => LuaMap<V, K>;
|
|
8
|
+
export declare const toLuaMap: <K extends PropertyKey, V>(record: Record<K, V>) => LuaMap<K, V>;
|
|
9
|
+
export declare const flattenKeys: <K extends AnyNotNil, V>(luaMap: ReadonlyLuaMap<readonly K[], V> | ReadonlyLuaMap<K[], V>) => LuaMap<K, V>;
|
|
10
|
+
export declare const mapKeys: {
|
|
11
|
+
<K1 extends AnyNotNil, K2 extends AnyNotNil, V>(luaMap: ReadonlyLuaMap<K1, V>, transform: (value: K1) => K2): LuaMap<K2, V>;
|
|
12
|
+
<K1 extends AnyNotNil, K2 extends keyof K1, V>(luaMap: ReadonlyLuaMap<K1, V>, key: K2): K1[K2] extends AnyNotNil ? LuaMap<K1[K2], V> : never;
|
|
13
|
+
};
|
|
14
|
+
export declare const mapValues: {
|
|
15
|
+
<K extends AnyNotNil, V1, V2>(luaMap: ReadonlyLuaMap<K, V1>, transform: (value: V1) => V2): LuaMap<K, V2>;
|
|
16
|
+
<K extends AnyNotNil, V1, V2 extends keyof V1>(luaMap: ReadonlyLuaMap<K, V1>, key: V2): LuaMap<K, V1[V2]>;
|
|
17
|
+
};
|
|
18
|
+
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
|
|
@@ -15,11 +27,50 @@ ____exports.luaMapInvert = function(luaMap)
|
|
|
15
27
|
end
|
|
16
28
|
return invertLuaMap
|
|
17
29
|
end
|
|
30
|
+
____exports.toLuaMap = function(record)
|
|
31
|
+
return record
|
|
32
|
+
end
|
|
33
|
+
____exports.flattenKeys = function(luaMap)
|
|
34
|
+
local result = {}
|
|
35
|
+
for keys, value in pairs(luaMap) do
|
|
36
|
+
for ____, key in ipairs(keys) do
|
|
37
|
+
result[key] = value
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
return result
|
|
41
|
+
end
|
|
42
|
+
____exports.mapKeys = function(luaMap, transform)
|
|
43
|
+
local result = {}
|
|
44
|
+
if type(transform) == "function" then
|
|
45
|
+
for key, value in pairs(luaMap) do
|
|
46
|
+
result[transform(key)] = value
|
|
47
|
+
end
|
|
48
|
+
else
|
|
49
|
+
for key, value in pairs(luaMap) do
|
|
50
|
+
result[key[transform]] = value
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
return result
|
|
54
|
+
end
|
|
18
55
|
____exports.mapValues = function(luaMap, transform)
|
|
19
56
|
local result = {}
|
|
20
|
-
|
|
21
|
-
|
|
57
|
+
if type(transform) == "function" then
|
|
58
|
+
for key, value in pairs(luaMap) do
|
|
59
|
+
result[key] = transform(value)
|
|
60
|
+
end
|
|
61
|
+
else
|
|
62
|
+
for key, value in pairs(luaMap) do
|
|
63
|
+
result[key] = value[transform]
|
|
64
|
+
end
|
|
22
65
|
end
|
|
23
66
|
return result
|
|
24
67
|
end
|
|
68
|
+
____exports.getOrPut = function(luaMap, key, defaultValue)
|
|
69
|
+
local value = luaMap[key]
|
|
70
|
+
if value == nil then
|
|
71
|
+
value = defaultValue()
|
|
72
|
+
luaMap[key] = value
|
|
73
|
+
end
|
|
74
|
+
return value
|
|
75
|
+
end
|
|
25
76
|
return ____exports
|
package/utility/lua-sets.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
export declare const emptyLuaSet: <T extends AnyNotNil>() => ReadonlyLuaSet<T>;
|
|
3
|
+
export declare const mutableLuaSet: <T extends AnyNotNil>() => LuaSet<T>;
|
|
2
4
|
export declare const luaSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LuaSet<T>;
|
|
3
5
|
export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LuaSet<T>;
|
|
4
6
|
export declare const luaSetIntersection: <T extends AnyNotNil>(firstLuaSet: ReadonlyLuaSet<T>, secondLuaSet: ReadonlyLuaSet<T>) => LuaSet<T>;
|
package/utility/lua-sets.lua
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local select = _G.select
|
|
3
|
+
local EMPTY_LUA_SET = {}
|
|
4
|
+
____exports.emptyLuaSet = function()
|
|
5
|
+
return EMPTY_LUA_SET
|
|
6
|
+
end
|
|
7
|
+
____exports.mutableLuaSet = function()
|
|
8
|
+
return {}
|
|
9
|
+
end
|
|
3
10
|
____exports.luaSetOf = function(...)
|
|
4
11
|
local luaSet = {}
|
|
5
12
|
for i = 1, select("#", ...) do
|
package/utility/records.lua
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local ____pairs = _G.pairs
|
|
3
|
+
local tableSort = table.sort
|
|
2
4
|
____exports.invertRecord = function(record)
|
|
3
5
|
local invertRecord = {}
|
|
4
|
-
for key, value in
|
|
6
|
+
for key, value in ____pairs(record) do
|
|
5
7
|
invertRecord[value] = key
|
|
6
8
|
end
|
|
7
9
|
return invertRecord
|
|
8
10
|
end
|
|
11
|
+
local sortedKeysInternal = {}
|
|
12
|
+
local lastSortedKeysLength = 0
|
|
13
|
+
---
|
|
14
|
+
-- @internal For use by internal systems only.
|
|
15
|
+
____exports.sortedKeysUnnested = function(record)
|
|
16
|
+
local length = 0
|
|
17
|
+
for key in ____pairs(record) do
|
|
18
|
+
length = length + 1
|
|
19
|
+
sortedKeysInternal[length] = key
|
|
20
|
+
end
|
|
21
|
+
for i = length + 1, lastSortedKeysLength do
|
|
22
|
+
sortedKeysInternal[i] = nil
|
|
23
|
+
end
|
|
24
|
+
lastSortedKeysLength = length
|
|
25
|
+
tableSort(sortedKeysInternal)
|
|
26
|
+
return sortedKeysInternal
|
|
27
|
+
end
|
|
9
28
|
return ____exports
|
package/utility/reflection.lua
CHANGED
|
@@ -5,21 +5,25 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
5
5
|
-- @internal For use by internal systems only.
|
|
6
6
|
____exports.implementReadonlyNumberIndexSupplier = function(clazz, supplier)
|
|
7
7
|
local metatable = checkNotNull(getmetatable(clazz))
|
|
8
|
-
local originalIndex = checkNotNull(metatable
|
|
8
|
+
local originalIndex = checkNotNull(rawget(metatable, "__index"))
|
|
9
9
|
local memoizedValueByKey = {}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
rawset(
|
|
11
|
+
metatable,
|
|
12
|
+
"__index",
|
|
13
|
+
function(self, key)
|
|
13
14
|
if type(key) == "number" then
|
|
14
|
-
local value =
|
|
15
|
-
|
|
15
|
+
local value = memoizedValueByKey[key]
|
|
16
|
+
if value == nil then
|
|
17
|
+
value = supplier(key)
|
|
18
|
+
memoizedValueByKey[key] = value
|
|
19
|
+
end
|
|
16
20
|
return value
|
|
17
21
|
end
|
|
18
22
|
if type(originalIndex) == "function" then
|
|
19
23
|
return originalIndex(self, key)
|
|
20
24
|
end
|
|
21
25
|
return originalIndex[key]
|
|
22
|
-
end
|
|
26
|
+
end
|
|
23
27
|
)
|
|
24
28
|
end
|
|
25
29
|
____exports.getClass = function(object)
|
package/utility/types.d.ts
CHANGED
|
@@ -37,4 +37,7 @@ export type Flatten<T extends readonly any[], A extends readonly any[] = []> = T
|
|
|
37
37
|
export type Prohibit<T, K extends keyof any> = T & {
|
|
38
38
|
[P in K]?: never;
|
|
39
39
|
};
|
|
40
|
+
type TupleSplit<T, N extends number, O extends readonly any[] = readonly []> = O["length"] extends N ? [O, T] : T extends readonly [infer F, ...infer R] ? TupleSplit<readonly [...R], N, readonly [...O, F]> : [O, T];
|
|
41
|
+
export type TakeFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[0];
|
|
42
|
+
export type SkipFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[1];
|
|
40
43
|
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
type OneSidedTypeGuard = {
|
|
3
|
+
readonly __oneSidedTypeGuard: unique symbol;
|
|
4
|
+
};
|
|
5
|
+
export interface ReadonlyUnorderedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
|
|
6
|
+
get(key: K): V | undefined;
|
|
7
|
+
contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
|
|
8
|
+
readonly size: number;
|
|
9
|
+
}
|
|
10
|
+
export interface UnorderedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
|
|
11
|
+
readonly __unorderedMap: unique symbol;
|
|
12
|
+
}
|
|
13
|
+
export declare class UnorderedMap<K extends AnyNotNil, V> implements ReadonlyUnorderedMap<K, V> {
|
|
14
|
+
private readonly v;
|
|
15
|
+
private s;
|
|
16
|
+
get(key: K): V | undefined;
|
|
17
|
+
getOrPut(key: K, defaultValue: (this: void) => V): V;
|
|
18
|
+
put(key: K, value: V): void;
|
|
19
|
+
remove(key: K): boolean;
|
|
20
|
+
contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
|
|
21
|
+
get size(): number;
|
|
22
|
+
protected __len(): number;
|
|
23
|
+
protected __pairs(this: UnorderedMap<K, V>): ReturnType<typeof pairs>;
|
|
24
|
+
}
|
|
25
|
+
export declare const emptyUnorderedMap: <K extends AnyNotNil, V>() => ReadonlyUnorderedMap<K, V>;
|
|
26
|
+
export declare const mutableUnorderedMap: <K extends AnyNotNil, V>() => UnorderedMap<K, V>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
4
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
5
|
+
local __TS__New = ____lualib.__TS__New
|
|
6
|
+
local ____exports = {}
|
|
7
|
+
local ____exception = require("exception")
|
|
8
|
+
local UnsupportedOperationException = ____exception.UnsupportedOperationException
|
|
9
|
+
____exports.UnorderedMap = __TS__Class()
|
|
10
|
+
local UnorderedMap = ____exports.UnorderedMap
|
|
11
|
+
UnorderedMap.name = "UnorderedMap"
|
|
12
|
+
function UnorderedMap.prototype.____constructor(self)
|
|
13
|
+
self.v = {}
|
|
14
|
+
self.s = 0
|
|
15
|
+
end
|
|
16
|
+
function UnorderedMap.prototype.get(self, key)
|
|
17
|
+
return self.v[key]
|
|
18
|
+
end
|
|
19
|
+
function UnorderedMap.prototype.getOrPut(self, key, defaultValue)
|
|
20
|
+
local value = self.v[key]
|
|
21
|
+
if value ~= nil then
|
|
22
|
+
return value
|
|
23
|
+
end
|
|
24
|
+
value = defaultValue()
|
|
25
|
+
if value ~= nil then
|
|
26
|
+
self.v[key] = value
|
|
27
|
+
self.s = self.s + 1
|
|
28
|
+
end
|
|
29
|
+
return value
|
|
30
|
+
end
|
|
31
|
+
function UnorderedMap.prototype.put(self, key, value)
|
|
32
|
+
local has = self.v[key] ~= nil
|
|
33
|
+
self.v[key] = value
|
|
34
|
+
if value ~= nil and not has then
|
|
35
|
+
self.s = self.s + 1
|
|
36
|
+
elseif value == nil and has then
|
|
37
|
+
self.s = self.s - 1
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
function UnorderedMap.prototype.remove(self, key)
|
|
41
|
+
if self.v[key] ~= nil then
|
|
42
|
+
self.v[key] = nil
|
|
43
|
+
self.s = self.s - 1
|
|
44
|
+
return true
|
|
45
|
+
end
|
|
46
|
+
return false
|
|
47
|
+
end
|
|
48
|
+
function UnorderedMap.prototype.contains(self, key)
|
|
49
|
+
return self.v[key] ~= nil
|
|
50
|
+
end
|
|
51
|
+
function UnorderedMap.prototype.__len(self)
|
|
52
|
+
return self.s
|
|
53
|
+
end
|
|
54
|
+
function UnorderedMap.prototype.__pairs(self)
|
|
55
|
+
return pairs(self.v)
|
|
56
|
+
end
|
|
57
|
+
__TS__SetDescriptor(
|
|
58
|
+
UnorderedMap.prototype,
|
|
59
|
+
"size",
|
|
60
|
+
{get = function(self)
|
|
61
|
+
return self.s
|
|
62
|
+
end},
|
|
63
|
+
true
|
|
64
|
+
)
|
|
65
|
+
local EmptyUnorderedMap = __TS__Class()
|
|
66
|
+
EmptyUnorderedMap.name = "EmptyUnorderedMap"
|
|
67
|
+
__TS__ClassExtends(EmptyUnorderedMap, ____exports.UnorderedMap)
|
|
68
|
+
function EmptyUnorderedMap.prototype.getOrPut(self)
|
|
69
|
+
error(
|
|
70
|
+
__TS__New(UnsupportedOperationException),
|
|
71
|
+
0
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
function EmptyUnorderedMap.prototype.put(self)
|
|
75
|
+
error(
|
|
76
|
+
__TS__New(UnsupportedOperationException),
|
|
77
|
+
0
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
function EmptyUnorderedMap.prototype.remove(self)
|
|
81
|
+
error(
|
|
82
|
+
__TS__New(UnsupportedOperationException),
|
|
83
|
+
0
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
function EmptyUnorderedMap.prototype.__len(self)
|
|
87
|
+
return 0
|
|
88
|
+
end
|
|
89
|
+
function EmptyUnorderedMap.prototype.__pairs(self)
|
|
90
|
+
return pairs(self.v)
|
|
91
|
+
end
|
|
92
|
+
local EMPTY_UNORDERED_MAP = __TS__New(EmptyUnorderedMap)
|
|
93
|
+
____exports.emptyUnorderedMap = function()
|
|
94
|
+
return EMPTY_UNORDERED_MAP
|
|
95
|
+
end
|
|
96
|
+
____exports.mutableUnorderedMap = function()
|
|
97
|
+
return __TS__New(____exports.UnorderedMap)
|
|
98
|
+
end
|
|
99
|
+
return ____exports
|
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
|
/package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts}
RENAMED
|
File without changes
|
/package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua}
RENAMED
|
File without changes
|