warscript 0.0.1-dev.f024cc2 → 0.0.1-dev.f074376

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.
Files changed (86) hide show
  1. package/attributes.d.ts +1 -0
  2. package/attributes.lua +9 -0
  3. package/core/types/frame.lua +14 -9
  4. package/core/types/player.d.ts +16 -0
  5. package/core/types/player.lua +57 -14
  6. package/core/types/playerCamera.lua +44 -0
  7. package/core/types/tileCell.d.ts +11 -1
  8. package/core/types/tileCell.lua +97 -0
  9. package/core/types/timer.d.ts +3 -2
  10. package/core/types/timer.lua +22 -2
  11. package/decl/native.d.ts +2 -2
  12. package/destroyable.d.ts +1 -0
  13. package/destroyable.lua +9 -0
  14. package/engine/behavior.d.ts +12 -1
  15. package/engine/behavior.lua +199 -65
  16. package/engine/behaviour/ability/apply-buff.lua +4 -4
  17. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  18. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  19. package/engine/behaviour/ability.d.ts +2 -1
  20. package/engine/behaviour/ability.lua +2 -1
  21. package/engine/behaviour/unit/stun-immunity.d.ts +8 -4
  22. package/engine/behaviour/unit/stun-immunity.lua +12 -3
  23. package/engine/behaviour/unit.d.ts +15 -5
  24. package/engine/behaviour/unit.lua +116 -22
  25. package/engine/buff.d.ts +15 -5
  26. package/engine/buff.lua +151 -94
  27. package/engine/internal/ability.d.ts +3 -1
  28. package/engine/internal/ability.lua +26 -9
  29. package/engine/internal/item.d.ts +13 -15
  30. package/engine/internal/item.lua +63 -49
  31. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  32. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  33. package/engine/internal/unit/ability.d.ts +14 -14
  34. package/engine/internal/unit/ability.lua +72 -45
  35. package/engine/internal/unit/bonus.d.ts +2 -0
  36. package/engine/internal/unit/bonus.lua +10 -0
  37. package/engine/internal/unit/fly-height.d.ts +7 -0
  38. package/engine/internal/unit/fly-height.lua +20 -0
  39. package/engine/internal/unit/main-selected.lua +12 -27
  40. package/engine/internal/unit/scale.d.ts +7 -0
  41. package/engine/internal/unit/scale.lua +20 -0
  42. package/engine/internal/unit+ability.lua +9 -0
  43. package/engine/internal/unit-missile-launch.lua +44 -20
  44. package/engine/internal/unit.d.ts +15 -12
  45. package/engine/internal/unit.lua +93 -76
  46. package/engine/local-client.d.ts +2 -0
  47. package/engine/local-client.lua +30 -0
  48. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  49. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  50. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  51. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  52. package/engine/object-data/entry/ability-type.lua +4 -1
  53. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  54. package/engine/object-data/entry/destructible-type.lua +155 -0
  55. package/engine/object-data/entry/unit-type.d.ts +4 -0
  56. package/engine/object-data/entry/unit-type.lua +76 -32
  57. package/engine/object-field/ability.d.ts +3 -3
  58. package/engine/object-field/ability.lua +7 -6
  59. package/engine/object-field/unit.d.ts +20 -5
  60. package/engine/object-field/unit.lua +61 -0
  61. package/engine/object-field.d.ts +9 -3
  62. package/engine/object-field.lua +237 -114
  63. package/engine/random.d.ts +9 -0
  64. package/engine/random.lua +13 -0
  65. package/engine/standard/fields/ability.d.ts +2 -2
  66. package/engine/standard/fields/ability.lua +2 -2
  67. package/engine/standard/fields/unit.d.ts +4 -1
  68. package/engine/standard/fields/unit.lua +6 -0
  69. package/engine/synchronization.d.ts +11 -0
  70. package/engine/synchronization.lua +77 -0
  71. package/engine/text-tag.lua +3 -2
  72. package/engine/unit.d.ts +2 -0
  73. package/engine/unit.lua +2 -0
  74. package/net/socket.lua +1 -1
  75. package/objutil/buff.lua +1 -1
  76. package/package.json +2 -2
  77. package/patch-lualib.lua +1 -1
  78. package/utility/arrays.d.ts +1 -0
  79. package/utility/arrays.lua +8 -0
  80. package/utility/callback-array.d.ts +17 -0
  81. package/utility/callback-array.lua +61 -0
  82. package/utility/linked-set.d.ts +1 -0
  83. package/utility/linked-set.lua +19 -1
  84. package/utility/lua-maps.d.ts +11 -2
  85. package/utility/lua-maps.lua +33 -2
  86. package/utility/types.d.ts +3 -0
@@ -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
- "range",
241
+ "missileModelPathSD",
242
242
  {
243
243
  get = function(self)
244
244
  local ____self_17 = self.unitType
245
- return ____self_17.getNumberField(
245
+ return ____self_17.getStringField(
246
246
  ____self_17,
247
- ("ua" .. tostring(self.index)) .. "r"
247
+ ("ua" .. tostring(self.index)) .. "m:sd"
248
248
  )
249
249
  end,
250
- set = function(self, range)
250
+ set = function(self, missileModelPathSD)
251
251
  local ____self_18 = self.unitType
252
- ____self_18.setNumberField(
252
+ ____self_18.setStringField(
253
253
  ____self_18,
254
- ("ua" .. tostring(self.index)) .. "r",
255
- range
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
- "soundType",
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
- "ucs" .. tostring(self.index)
269
+ ("ua" .. tostring(self.index)) .. "m:hd"
270
270
  )
271
271
  end,
272
- set = function(self, soundType)
272
+ set = function(self, missileModelPathHD)
273
273
  local ____self_20 = self.unitType
274
274
  ____self_20.setStringField(
275
275
  ____self_20,
276
- "ucs" .. tostring(self.index),
277
- soundType
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
- "soundTypeSD",
285
+ "range",
286
286
  {
287
287
  get = function(self)
288
288
  local ____self_21 = self.unitType
289
- return ____self_21.getStringField(
289
+ return ____self_21.getNumberField(
290
290
  ____self_21,
291
- ("ucs" .. tostring(self.index)) .. ":sd"
291
+ ("ua" .. tostring(self.index)) .. "r"
292
292
  )
293
293
  end,
294
- set = function(self, soundTypeSD)
294
+ set = function(self, range)
295
295
  local ____self_22 = self.unitType
296
- ____self_22.setStringField(
296
+ ____self_22.setNumberField(
297
297
  ____self_22,
298
- ("ucs" .. tostring(self.index)) .. ":sd",
299
- soundTypeSD
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
- "soundTypeHD",
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
- ("ucs" .. tostring(self.index)) .. ":hd"
313
+ "ucs" .. tostring(self.index)
314
314
  )
315
315
  end,
316
- set = function(self, soundTypeHD)
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 ____class_25 = __TS__Class()
1684
- ____class_25.name = ____class_25.name
1685
- __TS__ClassExtends(____class_25, ____exports.UnitType)
1686
- ____class_25.BASE_ID = id
1687
- return ____class_25
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 ____class_26 = __TS__Class()
1749
- ____class_26.name = ____class_26.name
1750
- __TS__ClassExtends(____class_26, ____exports.HeroUnitType)
1751
- ____class_26.BASE_ID = id
1752
- return ____class_26
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
@@ -12,7 +12,7 @@ import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
12
12
  export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
13
13
  protected get instanceClass(): typeof Ability;
14
14
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
15
- protected hasNativeFieldValue(instance: Ability): boolean;
15
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
16
16
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
17
17
  }
18
18
  export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
@@ -48,7 +48,7 @@ export declare class AbilityStringField extends AbilityField<string, jabilitystr
48
48
  export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectArrayField<AbilityType, Ability, ValueType, NativeFieldType> {
49
49
  protected get instanceClass(): typeof Ability;
50
50
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
51
- protected hasNativeFieldValue(instance: Ability): boolean;
51
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
52
52
  }
53
53
  export declare class AbilityStringArrayField extends AbilityArrayField<string, jabilitystringlevelfield> {
54
54
  protected get defaultValue(): string;
@@ -68,7 +68,7 @@ export declare abstract class AbilityLevelField<ValueType extends number | strin
68
68
  protected get instanceClass(): typeof Ability;
69
69
  protected getLevelCount(entry: AbilityType | Ability): number;
70
70
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
71
- protected hasNativeFieldValue(instance: Ability): boolean;
71
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
72
72
  static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
73
73
  }
74
74
  export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
@@ -7,6 +7,7 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
7
7
  local ____exports = {}
8
8
  local ____ability = require("engine.internal.ability")
9
9
  local Ability = ____ability.Ability
10
+ local abilityTypeHasField = ____ability.abilityTypeHasField
10
11
  local ____object_2Dfield = require("engine.object-field")
11
12
  local ObjectArrayField = ____object_2Dfield.ObjectArrayField
12
13
  local ObjectField = ____object_2Dfield.ObjectField
@@ -29,8 +30,8 @@ __TS__ClassExtends(AbilityField, ObjectField)
29
30
  function AbilityField.prototype.getObjectDataEntryId(self, instance)
30
31
  return instance.typeId
31
32
  end
32
- function AbilityField.prototype.hasNativeFieldValue(self, instance)
33
- return instance:hasField(self.nativeField)
33
+ function AbilityField.prototype.hasNativeFieldValue(self, abilityTypeId)
34
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
34
35
  end
35
36
  __TS__SetDescriptor(
36
37
  AbilityField.prototype,
@@ -197,8 +198,8 @@ __TS__ClassExtends(AbilityArrayField, ObjectArrayField)
197
198
  function AbilityArrayField.prototype.getObjectDataEntryId(self, instance)
198
199
  return instance.typeId
199
200
  end
200
- function AbilityArrayField.prototype.hasNativeFieldValue(self, instance)
201
- return instance:hasField(self.nativeField)
201
+ function AbilityArrayField.prototype.hasNativeFieldValue(self, abilityTypeId)
202
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
202
203
  end
203
204
  __TS__SetDescriptor(
204
205
  AbilityArrayField.prototype,
@@ -269,8 +270,8 @@ end
269
270
  function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
270
271
  return instance.typeId
271
272
  end
272
- function AbilityLevelField.prototype.hasNativeFieldValue(self, instance)
273
- return instance:hasField(self.nativeField)
273
+ function AbilityLevelField.prototype.hasNativeFieldValue(self, abilityTypeId)
274
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
274
275
  end
275
276
  __TS__SetDescriptor(
276
277
  AbilityLevelField.prototype,
@@ -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<number, junitintegerfield> {
26
- protected get defaultValue(): number;
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): number;
29
- protected setNativeFieldValue(instance: Unit, value: number): boolean;
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