warscript 0.0.1-dev.eda504c → 0.0.1-dev.ee6e396
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/core/types/player.d.ts +16 -0
- package/core/types/player.lua +57 -14
- package/core/types/tileCell.d.ts +2 -1
- package/core/types/tileCell.lua +5 -0
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +10 -2
- package/engine/behavior.lua +157 -76
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability.d.ts +6 -1
- package/engine/behaviour/ability.lua +31 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -5
- package/engine/behaviour/unit/stun-immunity.lua +6 -5
- package/engine/behaviour/unit.d.ts +7 -3
- package/engine/behaviour/unit.lua +101 -24
- package/engine/buff.d.ts +19 -4
- package/engine/buff.lua +122 -41
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +10 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- 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-missile-launch.lua +16 -6
- package/engine/internal/unit.d.ts +13 -19
- package/engine/internal/unit.lua +140 -173
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -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/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/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/unit-type.d.ts +4 -0
- package/engine/object-data/entry/unit-type.lua +76 -32
- package/engine/object-field/unit.d.ts +20 -5
- package/engine/object-field/unit.lua +61 -0
- package/engine/object-field.d.ts +9 -1
- package/engine/object-field.lua +265 -122
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +11 -3
- package/engine/standard/fields/unit.lua +15 -2
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.lua +2 -1
- package/engine/unit.d.ts +5 -0
- package/engine/unit.lua +5 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +9 -7
- package/package.json +2 -2
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +38 -0
- package/utility/records.lua +20 -1
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { ArmorSoundType } from "../auxiliary/armor-sound-type";
|
|
3
3
|
import { CombatClassifications } from "../auxiliary/combat-classification";
|
|
4
|
-
import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
|
|
4
|
+
import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
|
|
5
5
|
export type DestructibleTypeId = ObjectDataEntryId & number & {
|
|
6
6
|
readonly __destructibleTypeId: unique symbol;
|
|
7
7
|
};
|
|
8
|
+
export type StandardDestructibleTypeId = DestructibleTypeId & {
|
|
9
|
+
readonly __standardDestructibleTypeId: unique symbol;
|
|
10
|
+
};
|
|
8
11
|
export declare abstract class DestructibleType extends ObjectDataEntry<DestructibleTypeId> {
|
|
12
|
+
static readonly [id: StandardDestructibleTypeId]: ObjectDataEntryConstructor<DestructibleType>;
|
|
9
13
|
private static readonly idGenerator;
|
|
10
14
|
protected static generateId(): number;
|
|
11
15
|
protected static getObjectData(map: WarMap): WarObjects;
|
|
16
|
+
get fixedFacing(): number;
|
|
17
|
+
set fixedFacing(fixedFacing: number);
|
|
18
|
+
get flyOverHeight(): number;
|
|
19
|
+
set flyOverHeight(flyOverHeight: number);
|
|
20
|
+
get modelPath(): string;
|
|
21
|
+
set modelPath(modelPath: string);
|
|
22
|
+
get modelPathSD(): string;
|
|
23
|
+
set modelPathSD(modelPathSD: string);
|
|
24
|
+
get modelPathHD(): string;
|
|
25
|
+
set modelPathHD(modelPathHD: string);
|
|
26
|
+
get occlusionHeight(): number;
|
|
27
|
+
set occlusionHeight(occlusionHeight: number);
|
|
12
28
|
get armorSoundType(): ArmorSoundType;
|
|
13
29
|
set armorSoundType(armorSoundType: ArmorSoundType);
|
|
14
30
|
get armorSoundTypeSD(): ArmorSoundType;
|
|
@@ -17,4 +33,14 @@ export declare abstract class DestructibleType extends ObjectDataEntry<Destructi
|
|
|
17
33
|
set armorSoundTypeHD(armorSoundTypeHD: ArmorSoundType);
|
|
18
34
|
get combatClassifications(): CombatClassifications;
|
|
19
35
|
set combatClassifications(combatClassifications: CombatClassifications);
|
|
36
|
+
get cliffHeight(): number;
|
|
37
|
+
set cliffHeight(cliffHeight: number);
|
|
38
|
+
get isWalkable(): boolean;
|
|
39
|
+
set isWalkable(isWalkable: boolean);
|
|
40
|
+
get pathingTexturePath(): string;
|
|
41
|
+
set pathingTexturePath(pathingTexturePath: string);
|
|
42
|
+
get deadPathingTexturePath(): string;
|
|
43
|
+
set deadPathingTexturePath(deadPathingTexturePath: string);
|
|
44
|
+
get name(): string;
|
|
45
|
+
set name(name: string);
|
|
20
46
|
}
|
|
@@ -11,6 +11,8 @@ local ____entry = require("engine.object-data.entry")
|
|
|
11
11
|
local ObjectDataEntry = ____entry.ObjectDataEntry
|
|
12
12
|
local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
|
|
13
13
|
local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
|
|
14
|
+
local ____reflection = require("utility.reflection")
|
|
15
|
+
local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNumberIndexSupplier
|
|
14
16
|
____exports.DestructibleType = __TS__Class()
|
|
15
17
|
local DestructibleType = ____exports.DestructibleType
|
|
16
18
|
DestructibleType.name = "DestructibleType"
|
|
@@ -25,6 +27,84 @@ DestructibleType.idGenerator = __TS__New(
|
|
|
25
27
|
ObjectDataEntryIdGenerator,
|
|
26
28
|
fourCC("D000")
|
|
27
29
|
)
|
|
30
|
+
__TS__SetDescriptor(
|
|
31
|
+
DestructibleType.prototype,
|
|
32
|
+
"fixedFacing",
|
|
33
|
+
{
|
|
34
|
+
get = function(self)
|
|
35
|
+
return self:getNumberField("bfxr")
|
|
36
|
+
end,
|
|
37
|
+
set = function(self, fixedFacing)
|
|
38
|
+
self:setNumberField("bfxr", fixedFacing)
|
|
39
|
+
end
|
|
40
|
+
},
|
|
41
|
+
true
|
|
42
|
+
)
|
|
43
|
+
__TS__SetDescriptor(
|
|
44
|
+
DestructibleType.prototype,
|
|
45
|
+
"flyOverHeight",
|
|
46
|
+
{
|
|
47
|
+
get = function(self)
|
|
48
|
+
return self:getNumberField("bflh")
|
|
49
|
+
end,
|
|
50
|
+
set = function(self, flyOverHeight)
|
|
51
|
+
self:setNumberField("bflh", flyOverHeight)
|
|
52
|
+
end
|
|
53
|
+
},
|
|
54
|
+
true
|
|
55
|
+
)
|
|
56
|
+
__TS__SetDescriptor(
|
|
57
|
+
DestructibleType.prototype,
|
|
58
|
+
"modelPath",
|
|
59
|
+
{
|
|
60
|
+
get = function(self)
|
|
61
|
+
return self:getStringField("bfil")
|
|
62
|
+
end,
|
|
63
|
+
set = function(self, modelPath)
|
|
64
|
+
self:setStringField("bfil", modelPath)
|
|
65
|
+
end
|
|
66
|
+
},
|
|
67
|
+
true
|
|
68
|
+
)
|
|
69
|
+
__TS__SetDescriptor(
|
|
70
|
+
DestructibleType.prototype,
|
|
71
|
+
"modelPathSD",
|
|
72
|
+
{
|
|
73
|
+
get = function(self)
|
|
74
|
+
return self:getStringField("bfil:sd")
|
|
75
|
+
end,
|
|
76
|
+
set = function(self, modelPathSD)
|
|
77
|
+
self:setStringField("bfil:sd", modelPathSD)
|
|
78
|
+
end
|
|
79
|
+
},
|
|
80
|
+
true
|
|
81
|
+
)
|
|
82
|
+
__TS__SetDescriptor(
|
|
83
|
+
DestructibleType.prototype,
|
|
84
|
+
"modelPathHD",
|
|
85
|
+
{
|
|
86
|
+
get = function(self)
|
|
87
|
+
return self:getStringField("bfil:hd")
|
|
88
|
+
end,
|
|
89
|
+
set = function(self, modelPathHD)
|
|
90
|
+
self:setStringField("bfil:hd", modelPathHD)
|
|
91
|
+
end
|
|
92
|
+
},
|
|
93
|
+
true
|
|
94
|
+
)
|
|
95
|
+
__TS__SetDescriptor(
|
|
96
|
+
DestructibleType.prototype,
|
|
97
|
+
"occlusionHeight",
|
|
98
|
+
{
|
|
99
|
+
get = function(self)
|
|
100
|
+
return self:getNumberField("boch")
|
|
101
|
+
end,
|
|
102
|
+
set = function(self, occlusionHeight)
|
|
103
|
+
self:setNumberField("boch", occlusionHeight)
|
|
104
|
+
end
|
|
105
|
+
},
|
|
106
|
+
true
|
|
107
|
+
)
|
|
28
108
|
__TS__SetDescriptor(
|
|
29
109
|
DestructibleType.prototype,
|
|
30
110
|
"armorSoundType",
|
|
@@ -80,4 +160,79 @@ __TS__SetDescriptor(
|
|
|
80
160
|
},
|
|
81
161
|
true
|
|
82
162
|
)
|
|
163
|
+
__TS__SetDescriptor(
|
|
164
|
+
DestructibleType.prototype,
|
|
165
|
+
"cliffHeight",
|
|
166
|
+
{
|
|
167
|
+
get = function(self)
|
|
168
|
+
return self:getNumberField("bclh")
|
|
169
|
+
end,
|
|
170
|
+
set = function(self, cliffHeight)
|
|
171
|
+
self:setNumberField("bclh", cliffHeight)
|
|
172
|
+
end
|
|
173
|
+
},
|
|
174
|
+
true
|
|
175
|
+
)
|
|
176
|
+
__TS__SetDescriptor(
|
|
177
|
+
DestructibleType.prototype,
|
|
178
|
+
"isWalkable",
|
|
179
|
+
{
|
|
180
|
+
get = function(self)
|
|
181
|
+
return self:getBooleanField("bwal")
|
|
182
|
+
end,
|
|
183
|
+
set = function(self, isWalkable)
|
|
184
|
+
self:setBooleanField("bwal", isWalkable)
|
|
185
|
+
end
|
|
186
|
+
},
|
|
187
|
+
true
|
|
188
|
+
)
|
|
189
|
+
__TS__SetDescriptor(
|
|
190
|
+
DestructibleType.prototype,
|
|
191
|
+
"pathingTexturePath",
|
|
192
|
+
{
|
|
193
|
+
get = function(self)
|
|
194
|
+
return self:getStringField("bptx")
|
|
195
|
+
end,
|
|
196
|
+
set = function(self, pathingTexturePath)
|
|
197
|
+
self:setStringField("bptx", pathingTexturePath)
|
|
198
|
+
end
|
|
199
|
+
},
|
|
200
|
+
true
|
|
201
|
+
)
|
|
202
|
+
__TS__SetDescriptor(
|
|
203
|
+
DestructibleType.prototype,
|
|
204
|
+
"deadPathingTexturePath",
|
|
205
|
+
{
|
|
206
|
+
get = function(self)
|
|
207
|
+
return self:getStringField("bptd")
|
|
208
|
+
end,
|
|
209
|
+
set = function(self, deadPathingTexturePath)
|
|
210
|
+
self:setStringField("bptd", deadPathingTexturePath)
|
|
211
|
+
end
|
|
212
|
+
},
|
|
213
|
+
true
|
|
214
|
+
)
|
|
215
|
+
__TS__SetDescriptor(
|
|
216
|
+
DestructibleType.prototype,
|
|
217
|
+
"name",
|
|
218
|
+
{
|
|
219
|
+
get = function(self)
|
|
220
|
+
return self:getStringField("bnam")
|
|
221
|
+
end,
|
|
222
|
+
set = function(self, name)
|
|
223
|
+
self:setStringField("bnam", name)
|
|
224
|
+
end
|
|
225
|
+
},
|
|
226
|
+
true
|
|
227
|
+
)
|
|
228
|
+
implementReadonlyNumberIndexSupplier(
|
|
229
|
+
____exports.DestructibleType,
|
|
230
|
+
function(id)
|
|
231
|
+
local ____class_0 = __TS__Class()
|
|
232
|
+
____class_0.name = ____class_0.name
|
|
233
|
+
__TS__ClassExtends(____class_0, ____exports.DestructibleType)
|
|
234
|
+
____class_0.BASE_ID = id
|
|
235
|
+
return ____class_0
|
|
236
|
+
end
|
|
237
|
+
)
|
|
83
238
|
return ____exports
|
|
@@ -42,6 +42,10 @@ export declare class UnitTypeWeapon {
|
|
|
42
42
|
set impactDelay(impactDelay: number);
|
|
43
43
|
get missileModelPath(): string;
|
|
44
44
|
set missileModelPath(missileModelPath: string);
|
|
45
|
+
get missileModelPathSD(): string;
|
|
46
|
+
set missileModelPathSD(missileModelPathSD: string);
|
|
47
|
+
get missileModelPathHD(): string;
|
|
48
|
+
set missileModelPathHD(missileModelPathHD: string);
|
|
45
49
|
get range(): number;
|
|
46
50
|
set range(range: number);
|
|
47
51
|
get soundType(): WeaponSoundType;
|
|
@@ -238,21 +238,21 @@ __TS__SetDescriptor(
|
|
|
238
238
|
)
|
|
239
239
|
__TS__SetDescriptor(
|
|
240
240
|
UnitTypeWeapon.prototype,
|
|
241
|
-
"
|
|
241
|
+
"missileModelPathSD",
|
|
242
242
|
{
|
|
243
243
|
get = function(self)
|
|
244
244
|
local ____self_17 = self.unitType
|
|
245
|
-
return ____self_17.
|
|
245
|
+
return ____self_17.getStringField(
|
|
246
246
|
____self_17,
|
|
247
|
-
("ua" .. tostring(self.index)) .. "
|
|
247
|
+
("ua" .. tostring(self.index)) .. "m:sd"
|
|
248
248
|
)
|
|
249
249
|
end,
|
|
250
|
-
set = function(self,
|
|
250
|
+
set = function(self, missileModelPathSD)
|
|
251
251
|
local ____self_18 = self.unitType
|
|
252
|
-
____self_18.
|
|
252
|
+
____self_18.setStringField(
|
|
253
253
|
____self_18,
|
|
254
|
-
("ua" .. tostring(self.index)) .. "
|
|
255
|
-
|
|
254
|
+
("ua" .. tostring(self.index)) .. "m:sd",
|
|
255
|
+
missileModelPathSD
|
|
256
256
|
)
|
|
257
257
|
end
|
|
258
258
|
},
|
|
@@ -260,21 +260,21 @@ __TS__SetDescriptor(
|
|
|
260
260
|
)
|
|
261
261
|
__TS__SetDescriptor(
|
|
262
262
|
UnitTypeWeapon.prototype,
|
|
263
|
-
"
|
|
263
|
+
"missileModelPathHD",
|
|
264
264
|
{
|
|
265
265
|
get = function(self)
|
|
266
266
|
local ____self_19 = self.unitType
|
|
267
267
|
return ____self_19.getStringField(
|
|
268
268
|
____self_19,
|
|
269
|
-
"
|
|
269
|
+
("ua" .. tostring(self.index)) .. "m:hd"
|
|
270
270
|
)
|
|
271
271
|
end,
|
|
272
|
-
set = function(self,
|
|
272
|
+
set = function(self, missileModelPathHD)
|
|
273
273
|
local ____self_20 = self.unitType
|
|
274
274
|
____self_20.setStringField(
|
|
275
275
|
____self_20,
|
|
276
|
-
"
|
|
277
|
-
|
|
276
|
+
("ua" .. tostring(self.index)) .. "m:hd",
|
|
277
|
+
missileModelPathHD
|
|
278
278
|
)
|
|
279
279
|
end
|
|
280
280
|
},
|
|
@@ -282,21 +282,21 @@ __TS__SetDescriptor(
|
|
|
282
282
|
)
|
|
283
283
|
__TS__SetDescriptor(
|
|
284
284
|
UnitTypeWeapon.prototype,
|
|
285
|
-
"
|
|
285
|
+
"range",
|
|
286
286
|
{
|
|
287
287
|
get = function(self)
|
|
288
288
|
local ____self_21 = self.unitType
|
|
289
|
-
return ____self_21.
|
|
289
|
+
return ____self_21.getNumberField(
|
|
290
290
|
____self_21,
|
|
291
|
-
("
|
|
291
|
+
("ua" .. tostring(self.index)) .. "r"
|
|
292
292
|
)
|
|
293
293
|
end,
|
|
294
|
-
set = function(self,
|
|
294
|
+
set = function(self, range)
|
|
295
295
|
local ____self_22 = self.unitType
|
|
296
|
-
____self_22.
|
|
296
|
+
____self_22.setNumberField(
|
|
297
297
|
____self_22,
|
|
298
|
-
("
|
|
299
|
-
|
|
298
|
+
("ua" .. tostring(self.index)) .. "r",
|
|
299
|
+
range
|
|
300
300
|
)
|
|
301
301
|
end
|
|
302
302
|
},
|
|
@@ -304,19 +304,63 @@ __TS__SetDescriptor(
|
|
|
304
304
|
)
|
|
305
305
|
__TS__SetDescriptor(
|
|
306
306
|
UnitTypeWeapon.prototype,
|
|
307
|
-
"
|
|
307
|
+
"soundType",
|
|
308
308
|
{
|
|
309
309
|
get = function(self)
|
|
310
310
|
local ____self_23 = self.unitType
|
|
311
311
|
return ____self_23.getStringField(
|
|
312
312
|
____self_23,
|
|
313
|
-
|
|
313
|
+
"ucs" .. tostring(self.index)
|
|
314
314
|
)
|
|
315
315
|
end,
|
|
316
|
-
set = function(self,
|
|
316
|
+
set = function(self, soundType)
|
|
317
317
|
local ____self_24 = self.unitType
|
|
318
318
|
____self_24.setStringField(
|
|
319
319
|
____self_24,
|
|
320
|
+
"ucs" .. tostring(self.index),
|
|
321
|
+
soundType
|
|
322
|
+
)
|
|
323
|
+
end
|
|
324
|
+
},
|
|
325
|
+
true
|
|
326
|
+
)
|
|
327
|
+
__TS__SetDescriptor(
|
|
328
|
+
UnitTypeWeapon.prototype,
|
|
329
|
+
"soundTypeSD",
|
|
330
|
+
{
|
|
331
|
+
get = function(self)
|
|
332
|
+
local ____self_25 = self.unitType
|
|
333
|
+
return ____self_25.getStringField(
|
|
334
|
+
____self_25,
|
|
335
|
+
("ucs" .. tostring(self.index)) .. ":sd"
|
|
336
|
+
)
|
|
337
|
+
end,
|
|
338
|
+
set = function(self, soundTypeSD)
|
|
339
|
+
local ____self_26 = self.unitType
|
|
340
|
+
____self_26.setStringField(
|
|
341
|
+
____self_26,
|
|
342
|
+
("ucs" .. tostring(self.index)) .. ":sd",
|
|
343
|
+
soundTypeSD
|
|
344
|
+
)
|
|
345
|
+
end
|
|
346
|
+
},
|
|
347
|
+
true
|
|
348
|
+
)
|
|
349
|
+
__TS__SetDescriptor(
|
|
350
|
+
UnitTypeWeapon.prototype,
|
|
351
|
+
"soundTypeHD",
|
|
352
|
+
{
|
|
353
|
+
get = function(self)
|
|
354
|
+
local ____self_27 = self.unitType
|
|
355
|
+
return ____self_27.getStringField(
|
|
356
|
+
____self_27,
|
|
357
|
+
("ucs" .. tostring(self.index)) .. ":hd"
|
|
358
|
+
)
|
|
359
|
+
end,
|
|
360
|
+
set = function(self, soundTypeHD)
|
|
361
|
+
local ____self_28 = self.unitType
|
|
362
|
+
____self_28.setStringField(
|
|
363
|
+
____self_28,
|
|
320
364
|
("ucs" .. tostring(self.index)) .. ":hd",
|
|
321
365
|
soundTypeHD
|
|
322
366
|
)
|
|
@@ -1680,11 +1724,11 @@ __TS__SetDescriptor(
|
|
|
1680
1724
|
implementReadonlyNumberIndexSupplier(
|
|
1681
1725
|
____exports.UnitType,
|
|
1682
1726
|
function(id)
|
|
1683
|
-
local
|
|
1684
|
-
|
|
1685
|
-
__TS__ClassExtends(
|
|
1686
|
-
|
|
1687
|
-
return
|
|
1727
|
+
local ____class_29 = __TS__Class()
|
|
1728
|
+
____class_29.name = ____class_29.name
|
|
1729
|
+
__TS__ClassExtends(____class_29, ____exports.UnitType)
|
|
1730
|
+
____class_29.BASE_ID = id
|
|
1731
|
+
return ____class_29
|
|
1688
1732
|
end
|
|
1689
1733
|
)
|
|
1690
1734
|
____exports.HeroUnitType = __TS__Class()
|
|
@@ -1745,11 +1789,11 @@ __TS__SetDescriptor(
|
|
|
1745
1789
|
implementReadonlyNumberIndexSupplier(
|
|
1746
1790
|
____exports.HeroUnitType,
|
|
1747
1791
|
function(id)
|
|
1748
|
-
local
|
|
1749
|
-
|
|
1750
|
-
__TS__ClassExtends(
|
|
1751
|
-
|
|
1752
|
-
return
|
|
1792
|
+
local ____class_30 = __TS__Class()
|
|
1793
|
+
____class_30.name = ____class_30.name
|
|
1794
|
+
__TS__ClassExtends(____class_30, ____exports.HeroUnitType)
|
|
1795
|
+
____class_30.BASE_ID = id
|
|
1796
|
+
return ____class_30
|
|
1753
1797
|
end
|
|
1754
1798
|
)
|
|
1755
1799
|
return ____exports
|
|
@@ -1,38 +1,44 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Unit } from "../internal/unit";
|
|
3
|
-
import { ObjectField, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectLevelFieldType } from "../object-field";
|
|
3
|
+
import { ObjectField, ObjectFieldValueChangeEvent, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectFieldType, ReadonlyObjectLevelFieldType } from "../object-field";
|
|
4
4
|
import { UnitType, UnitTypeId } from "../object-data/entry/unit-type";
|
|
5
5
|
import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
6
6
|
import { AttackType } from "../object-data/auxiliary/attack-type";
|
|
7
7
|
import { UnitClassifications } from "../object-data/auxiliary/unit-classification";
|
|
8
|
+
import { HealthRegenerationType } from "../object-data/auxiliary/health-regeneration-type";
|
|
8
9
|
export declare abstract class UnitField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<UnitType, Unit, ValueType, NativeFieldType> {
|
|
9
10
|
protected get instanceClass(): typeof Unit;
|
|
10
11
|
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
11
12
|
protected hasNativeFieldValue(): boolean;
|
|
13
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitField>>;
|
|
12
14
|
}
|
|
13
15
|
export declare class UnitBooleanField extends UnitField<boolean, junitbooleanfield> {
|
|
14
16
|
protected get defaultValue(): boolean;
|
|
15
17
|
protected getNativeFieldById(id: number): junitbooleanfield;
|
|
16
18
|
protected getNativeFieldValue(instance: Unit): boolean;
|
|
17
19
|
protected setNativeFieldValue(instance: Unit, value: boolean): boolean;
|
|
20
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitBooleanField>>;
|
|
18
21
|
}
|
|
19
22
|
export declare class UnitFloatField extends UnitField<number, junitrealfield> {
|
|
20
23
|
protected get defaultValue(): number;
|
|
21
24
|
protected getNativeFieldById(id: number): junitrealfield;
|
|
22
25
|
protected getNativeFieldValue(instance: Unit): number;
|
|
23
26
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
27
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitFloatField>>;
|
|
24
28
|
}
|
|
25
|
-
export declare class UnitIntegerField extends UnitField<
|
|
26
|
-
protected get defaultValue():
|
|
29
|
+
export declare class UnitIntegerField<T extends number = number> extends UnitField<T, junitintegerfield> {
|
|
30
|
+
protected get defaultValue(): T;
|
|
27
31
|
protected getNativeFieldById(id: number): junitintegerfield;
|
|
28
|
-
protected getNativeFieldValue(instance: Unit):
|
|
29
|
-
protected setNativeFieldValue(instance: Unit, value:
|
|
32
|
+
protected getNativeFieldValue(instance: Unit): T;
|
|
33
|
+
protected setNativeFieldValue(instance: Unit, value: T): boolean;
|
|
34
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitIntegerField>>;
|
|
30
35
|
}
|
|
31
36
|
export declare class UnitStringField extends UnitField<string, junitstringfield> {
|
|
32
37
|
protected get defaultValue(): string;
|
|
33
38
|
protected getNativeFieldById(id: number): junitstringfield;
|
|
34
39
|
protected getNativeFieldValue(instance: Unit): string;
|
|
35
40
|
protected setNativeFieldValue(instance: Unit, value: string): boolean;
|
|
41
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitStringField>>;
|
|
36
42
|
}
|
|
37
43
|
type junitweaponfield = junitweaponbooleanfield | junitweaponintegerfield | junitweaponrealfield | junitweaponstringfield;
|
|
38
44
|
export declare abstract class UnitWeaponField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType extends junitweaponfield = junitweaponfield> extends ObjectLevelField<UnitType, Unit, ValueType, InputValueType, NativeFieldType> {
|
|
@@ -63,8 +69,17 @@ export declare class UnitClassificationsField extends UnitField<UnitClassificati
|
|
|
63
69
|
protected getNativeFieldValue(instance: Unit): UnitClassifications;
|
|
64
70
|
protected setNativeFieldValue(instance: Unit, value: UnitClassifications): boolean;
|
|
65
71
|
}
|
|
72
|
+
export declare class UnitFlyHeightField extends UnitFloatField {
|
|
73
|
+
protected getNativeFieldValue(instance: Unit): number;
|
|
74
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
75
|
+
}
|
|
66
76
|
export declare class UnitPropulsionWindowField extends UnitFloatField {
|
|
67
77
|
protected getNativeFieldValue(instance: Unit): number;
|
|
68
78
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
69
79
|
}
|
|
80
|
+
export declare class UnitHealthRegenerationTypeField extends UnitIntegerField<HealthRegenerationType> {
|
|
81
|
+
}
|
|
82
|
+
export declare class UnitScalingValueField extends UnitFloatField {
|
|
83
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
84
|
+
}
|
|
70
85
|
export {};
|
|
@@ -18,8 +18,11 @@ local convertUnitStringField = ConvertUnitStringField
|
|
|
18
18
|
local convertUnitWeaponIntegerField = ConvertUnitWeaponIntegerField
|
|
19
19
|
local getUnitWeaponIntegerField = BlzGetUnitWeaponIntegerField
|
|
20
20
|
local setUnitWeaponIntegerField = BlzSetUnitWeaponIntegerField
|
|
21
|
+
local getUnitFlyHeight = GetUnitFlyHeight
|
|
22
|
+
local setUnitFlyHeight = SetUnitFlyHeight
|
|
21
23
|
local getUnitPropulsionWindow = GetUnitPropWindow
|
|
22
24
|
local setUnitPropulsionWindow = SetUnitPropWindow
|
|
25
|
+
local setUnitScale = SetUnitScale
|
|
23
26
|
____exports.UnitField = __TS__Class()
|
|
24
27
|
local UnitField = ____exports.UnitField
|
|
25
28
|
UnitField.name = "UnitField"
|
|
@@ -38,6 +41,13 @@ __TS__SetDescriptor(
|
|
|
38
41
|
end},
|
|
39
42
|
true
|
|
40
43
|
)
|
|
44
|
+
__TS__ObjectDefineProperty(
|
|
45
|
+
UnitField,
|
|
46
|
+
"valueChangeEvent",
|
|
47
|
+
{get = function(self)
|
|
48
|
+
return self:getOrCreateValueChangeEvent()
|
|
49
|
+
end}
|
|
50
|
+
)
|
|
41
51
|
____exports.UnitBooleanField = __TS__Class()
|
|
42
52
|
local UnitBooleanField = ____exports.UnitBooleanField
|
|
43
53
|
UnitBooleanField.name = "UnitBooleanField"
|
|
@@ -59,6 +69,13 @@ __TS__SetDescriptor(
|
|
|
59
69
|
end},
|
|
60
70
|
true
|
|
61
71
|
)
|
|
72
|
+
__TS__ObjectDefineProperty(
|
|
73
|
+
UnitBooleanField,
|
|
74
|
+
"valueChangeEvent",
|
|
75
|
+
{get = function(self)
|
|
76
|
+
return self:getOrCreateValueChangeEvent()
|
|
77
|
+
end}
|
|
78
|
+
)
|
|
62
79
|
____exports.UnitFloatField = __TS__Class()
|
|
63
80
|
local UnitFloatField = ____exports.UnitFloatField
|
|
64
81
|
UnitFloatField.name = "UnitFloatField"
|
|
@@ -80,6 +97,13 @@ __TS__SetDescriptor(
|
|
|
80
97
|
end},
|
|
81
98
|
true
|
|
82
99
|
)
|
|
100
|
+
__TS__ObjectDefineProperty(
|
|
101
|
+
UnitFloatField,
|
|
102
|
+
"valueChangeEvent",
|
|
103
|
+
{get = function(self)
|
|
104
|
+
return self:getOrCreateValueChangeEvent()
|
|
105
|
+
end}
|
|
106
|
+
)
|
|
83
107
|
____exports.UnitIntegerField = __TS__Class()
|
|
84
108
|
local UnitIntegerField = ____exports.UnitIntegerField
|
|
85
109
|
UnitIntegerField.name = "UnitIntegerField"
|
|
@@ -101,6 +125,13 @@ __TS__SetDescriptor(
|
|
|
101
125
|
end},
|
|
102
126
|
true
|
|
103
127
|
)
|
|
128
|
+
__TS__ObjectDefineProperty(
|
|
129
|
+
UnitIntegerField,
|
|
130
|
+
"valueChangeEvent",
|
|
131
|
+
{get = function(self)
|
|
132
|
+
return self:getOrCreateValueChangeEvent()
|
|
133
|
+
end}
|
|
134
|
+
)
|
|
104
135
|
____exports.UnitStringField = __TS__Class()
|
|
105
136
|
local UnitStringField = ____exports.UnitStringField
|
|
106
137
|
UnitStringField.name = "UnitStringField"
|
|
@@ -122,6 +153,13 @@ __TS__SetDescriptor(
|
|
|
122
153
|
end},
|
|
123
154
|
true
|
|
124
155
|
)
|
|
156
|
+
__TS__ObjectDefineProperty(
|
|
157
|
+
UnitStringField,
|
|
158
|
+
"valueChangeEvent",
|
|
159
|
+
{get = function(self)
|
|
160
|
+
return self:getOrCreateValueChangeEvent()
|
|
161
|
+
end}
|
|
162
|
+
)
|
|
125
163
|
____exports.UnitWeaponField = __TS__Class()
|
|
126
164
|
local UnitWeaponField = ____exports.UnitWeaponField
|
|
127
165
|
UnitWeaponField.name = "UnitWeaponField"
|
|
@@ -238,6 +276,17 @@ __TS__SetDescriptor(
|
|
|
238
276
|
end},
|
|
239
277
|
true
|
|
240
278
|
)
|
|
279
|
+
____exports.UnitFlyHeightField = __TS__Class()
|
|
280
|
+
local UnitFlyHeightField = ____exports.UnitFlyHeightField
|
|
281
|
+
UnitFlyHeightField.name = "UnitFlyHeightField"
|
|
282
|
+
__TS__ClassExtends(UnitFlyHeightField, ____exports.UnitFloatField)
|
|
283
|
+
function UnitFlyHeightField.prototype.getNativeFieldValue(self, instance)
|
|
284
|
+
return getUnitFlyHeight(instance.handle)
|
|
285
|
+
end
|
|
286
|
+
function UnitFlyHeightField.prototype.setNativeFieldValue(self, instance, value)
|
|
287
|
+
setUnitFlyHeight(instance.handle, value, 100000)
|
|
288
|
+
return true
|
|
289
|
+
end
|
|
241
290
|
____exports.UnitPropulsionWindowField = __TS__Class()
|
|
242
291
|
local UnitPropulsionWindowField = ____exports.UnitPropulsionWindowField
|
|
243
292
|
UnitPropulsionWindowField.name = "UnitPropulsionWindowField"
|
|
@@ -249,4 +298,16 @@ function UnitPropulsionWindowField.prototype.setNativeFieldValue(self, instance,
|
|
|
249
298
|
setUnitPropulsionWindow(instance.handle, value)
|
|
250
299
|
return true
|
|
251
300
|
end
|
|
301
|
+
____exports.UnitHealthRegenerationTypeField = __TS__Class()
|
|
302
|
+
local UnitHealthRegenerationTypeField = ____exports.UnitHealthRegenerationTypeField
|
|
303
|
+
UnitHealthRegenerationTypeField.name = "UnitHealthRegenerationTypeField"
|
|
304
|
+
__TS__ClassExtends(UnitHealthRegenerationTypeField, ____exports.UnitIntegerField)
|
|
305
|
+
____exports.UnitScalingValueField = __TS__Class()
|
|
306
|
+
local UnitScalingValueField = ____exports.UnitScalingValueField
|
|
307
|
+
UnitScalingValueField.name = "UnitScalingValueField"
|
|
308
|
+
__TS__ClassExtends(UnitScalingValueField, ____exports.UnitFloatField)
|
|
309
|
+
function UnitScalingValueField.prototype.setNativeFieldValue(self, instance, value)
|
|
310
|
+
setUnitScale(instance.handle, value, value, value)
|
|
311
|
+
return UnitScalingValueField.____super.prototype.setNativeFieldValue(self, instance, value)
|
|
312
|
+
end
|
|
252
313
|
return ____exports
|
package/engine/object-field.d.ts
CHANGED
|
@@ -36,7 +36,8 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
|
|
|
36
36
|
]> : never;
|
|
37
37
|
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue" | "trySetValue">;
|
|
38
38
|
type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
|
|
39
|
-
type ObjectFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, currentValue: ValueType, originalValue: ValueType) => ValueType;
|
|
39
|
+
export type ObjectFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, currentValue: ValueType, originalValue: ValueType) => ValueType;
|
|
40
|
+
export type ObjectLevelFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, level: number, currentValue: ValueType, originalValue: ValueType) => ValueType;
|
|
40
41
|
export declare abstract class ObjectField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType, NativeFieldType> {
|
|
41
42
|
protected abstract readonly defaultValue: ValueType;
|
|
42
43
|
protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
|
|
@@ -45,6 +46,7 @@ export declare abstract class ObjectField<ObjectDataEntryType extends ObjectData
|
|
|
45
46
|
private modifiersByInstance?;
|
|
46
47
|
getValue(entry: ObjectDataEntryType | InstanceType, includeModifiers?: boolean): ValueType;
|
|
47
48
|
setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
|
|
49
|
+
updateActualValue(instance: InstanceType): void;
|
|
48
50
|
applyModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): void;
|
|
49
51
|
removeModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): boolean;
|
|
50
52
|
removeValue(entry: ObjectDataEntryType): boolean;
|
|
@@ -88,7 +90,13 @@ export declare abstract class ObjectLevelField<ObjectDataEntryType extends Objec
|
|
|
88
90
|
protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
|
|
89
91
|
getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
|
|
90
92
|
setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
|
|
93
|
+
updateActualValue(instance: InstanceType, level?: number): void;
|
|
94
|
+
applyModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): void;
|
|
95
|
+
removeModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): boolean;
|
|
91
96
|
trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
|
|
97
|
+
private getActualValue;
|
|
98
|
+
private setActualValue;
|
|
99
|
+
private calculateActualValue;
|
|
92
100
|
private invokeValueChangeEvent;
|
|
93
101
|
private invokeValueChangeEventRecursive;
|
|
94
102
|
protected static getOrCreateValueChangeEvent<T extends ObjectLevelField, R extends ReadonlyObjectLevelFieldType<T>>(this: ReadonlyObjectLevelFieldConstructor<T>): ObjectLevelFieldValueChangeEvent<R>;
|