warscript 0.0.1-dev.87b6c38 → 0.0.1-dev.8895ff6

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 (45) hide show
  1. package/destroyable.d.ts +1 -0
  2. package/destroyable.lua +9 -0
  3. package/engine/behavior.d.ts +4 -2
  4. package/engine/behavior.lua +69 -11
  5. package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
  6. package/engine/behaviour/unit/stun-immunity.lua +5 -4
  7. package/engine/behaviour/unit.lua +13 -3
  8. package/engine/buff.d.ts +7 -2
  9. package/engine/buff.lua +42 -24
  10. package/engine/internal/mechanics/cast-ability.lua +6 -3
  11. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  12. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  13. package/engine/internal/unit/attributes.d.ts +17 -0
  14. package/engine/internal/unit/attributes.lua +46 -0
  15. package/engine/internal/unit/bonus.d.ts +2 -0
  16. package/engine/internal/unit/bonus.lua +10 -0
  17. package/engine/internal/unit/fly-height.lua +3 -3
  18. package/engine/internal/unit/interrupts.d.ts +12 -0
  19. package/engine/internal/unit/interrupts.lua +28 -0
  20. package/engine/internal/unit/scale.lua +3 -3
  21. package/engine/internal/unit-missile-launch.lua +12 -5
  22. package/engine/internal/unit.d.ts +1 -8
  23. package/engine/internal/unit.lua +16 -69
  24. package/engine/local-client.d.ts +1 -1
  25. package/engine/local-client.lua +4 -4
  26. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  27. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  28. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  29. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  30. package/engine/object-data/entry/destructible-type.d.ts +12 -0
  31. package/engine/object-data/entry/destructible-type.lua +78 -0
  32. package/engine/object-field/unit.d.ts +7 -4
  33. package/engine/object-field/unit.lua +4 -0
  34. package/engine/object-field.d.ts +2 -0
  35. package/engine/object-field.lua +171 -115
  36. package/engine/standard/fields/unit.d.ts +11 -5
  37. package/engine/standard/fields/unit.lua +13 -4
  38. package/engine/unit.d.ts +2 -0
  39. package/engine/unit.lua +2 -0
  40. package/objutil/buff.lua +9 -7
  41. package/package.json +1 -1
  42. package/utility/linked-map.d.ts +26 -0
  43. package/utility/linked-map.lua +66 -0
  44. package/utility/linked-set.lua +4 -0
  45. package/utility/records.lua +20 -1
@@ -36,11 +36,18 @@ local instantOrderIds = luaSetOf(
36
36
  orderId("undivineshield"),
37
37
  orderId("unimmolation")
38
38
  )
39
- local function reset(source, orderId)
40
- if not (instantOrderIds[orderId] ~= nil) and units:remove(source) then
41
- source[targetAttribute] = nil
42
- source[impactDelayAttribute] = nil
43
- source[passedTimeAttribute] = nil
39
+ ---
40
+ -- @internal For use by internal systems only.
41
+ ____exports.resetAutoAttackTimer = function(unit)
42
+ if units:remove(unit) then
43
+ unit[targetAttribute] = nil
44
+ unit[impactDelayAttribute] = nil
45
+ unit[passedTimeAttribute] = nil
46
+ end
47
+ end
48
+ local function reset(unit, orderId)
49
+ if not (instantOrderIds[orderId] ~= nil) then
50
+ ____exports.resetAutoAttackTimer(unit)
44
51
  end
45
52
  end
46
53
  Unit.onImmediateOrder:addListener(reset)
@@ -177,16 +177,10 @@ export declare class Unit extends Handle<junit> {
177
177
  set xp(v: number);
178
178
  get primaryAttribute(): UnitAttribute;
179
179
  set primaryAttribute(primaryAttribute: UnitAttribute);
180
- get strengthBase(): number;
181
- set strengthBase(strengthBase: number);
182
180
  get strengthBonus(): number;
183
181
  get strength(): number;
184
- get agilityBase(): number;
185
- set agilityBase(agilityBase: number);
186
182
  get agilityBonus(): number;
187
183
  get agility(): number;
188
- get intelligenceBase(): number;
189
- set intelligenceBase(intelligenceBase: number);
190
184
  get intelligenceBonus(): number;
191
185
  get intelligence(): number;
192
186
  get name(): string;
@@ -277,8 +271,6 @@ export declare class Unit extends Handle<junit> {
277
271
  getAbilityRemainingCooldown(abilityId: number): number;
278
272
  startAbilityCooldown(abilityId: number, cooldown: number): void;
279
273
  endAbilityCooldown(abilityId: number): void;
280
- interruptMovement(): void;
281
- interruptAttack(): void;
282
274
  interruptCast(abilityId: number): void;
283
275
  getDistanceTo(target: Unit | Vec2): number;
284
276
  getCollisionDistanceTo(...target: [Unit] | [targetX: number, targetY: number]): number;
@@ -318,6 +310,7 @@ export declare class Unit extends Handle<junit> {
318
310
  static getInCollisionRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
319
311
  static getInSector(pos: Vec2, range: number, offsetAngle: number, centralAngle: number): Unit[];
320
312
  static getSelectionOf(player: Player, target?: Unit[]): Unit[];
313
+ static readonly levelChangedEvent: UnitTriggerEvent<[]>;
321
314
  static readonly deathEvent: UnitTriggerEvent<[Unit]>;
322
315
  static readonly onDecay: UnitTriggerEvent<[]>;
323
316
  static readonly onResurrect: InitializingEvent<[Unit], void>;
@@ -64,6 +64,8 @@ local ____ability = require("engine.internal.item.ability")
64
64
  local doUnitAbilityAction = ____ability.doUnitAbilityAction
65
65
  local ____synchronization = require("engine.synchronization")
66
66
  local synchronizer = ____synchronization.synchronizer
67
+ local ____linked_2Dmap = require("utility.linked-map")
68
+ local LinkedMap = ____linked_2Dmap.LinkedMap
67
69
  local match = string.match
68
70
  local ____tostring = _G.tostring
69
71
  local setUnitAnimation = SetUnitAnimation
@@ -73,16 +75,12 @@ local getUnitRealField = BlzGetUnitRealField
73
75
  local getHeroStr = GetHeroStr
74
76
  local getHeroAgi = GetHeroAgi
75
77
  local getHeroInt = GetHeroInt
76
- local setHeroStr = SetHeroStr
77
- local setHeroAgi = SetHeroAgi
78
- local setHeroInt = SetHeroInt
79
78
  local getUnitBooleanField = BlzGetUnitBooleanField
80
79
  local getUnitStringField = BlzGetUnitStringField
81
80
  local setUnitIntegerField = BlzSetUnitIntegerField
82
81
  local setUnitRealField = BlzSetUnitRealField
83
82
  local setUnitBooleanField = BlzSetUnitBooleanField
84
83
  local setUnitStringField = BlzSetUnitStringField
85
- local setUnitScale = SetUnitScale
86
84
  local setUnitPosition = SetUnitPosition
87
85
  local setUnitTimeScale = SetUnitTimeScale
88
86
  local getHandleId = GetHandleId
@@ -110,7 +108,6 @@ local getUnitWeaponStringField = BlzGetUnitWeaponStringField
110
108
  local setUnitWeaponStringField = BlzSetUnitWeaponStringField
111
109
  local getUnitAbilityLevel = GetUnitAbilityLevel
112
110
  local unitDisableAbility = BlzUnitDisableAbility
113
- local unitInterruptAttack = BlzUnitInterruptAttack
114
111
  local isUnitInvisible = IsUnitInvisible
115
112
  local isUnitVisible = IsUnitVisible
116
113
  local getUnitX = GetUnitX
@@ -711,19 +708,21 @@ function Unit.prototype.____constructor(self, handle)
711
708
  unitBySyncId[self.syncId] = self
712
709
  local ____ = self.abilities
713
710
  end
714
- function Unit.prototype.getEvent(self, event, collector)
715
- self.events = self.events or ({})
716
- local eventId = GetHandleId(event)
717
- if not self.events[eventId] then
718
- self.events[eventId] = __TS__New(
711
+ function Unit.prototype.getEvent(self, jevent, collector)
712
+ self.events = self.events or __TS__New(LinkedMap)
713
+ local eventId = GetHandleId(jevent)
714
+ local event = self.events:get(eventId)
715
+ if event == nil then
716
+ event = __TS__New(
719
717
  TriggerEvent,
720
718
  function(trigger)
721
- TriggerRegisterUnitEvent(trigger, self.handle, event)
719
+ TriggerRegisterUnitEvent(trigger, self.handle, jevent)
722
720
  end,
723
721
  collector or (function() return {} end)
724
722
  )
723
+ self.events:put(eventId, event)
725
724
  end
726
- return self.events[eventId]
725
+ return event
727
726
  end
728
727
  function Unit.prototype.onDestroy(self)
729
728
  local handle = self.handle
@@ -980,24 +979,6 @@ end
980
979
  function Unit.prototype.endAbilityCooldown(self, abilityId)
981
980
  BlzEndUnitAbilityCooldown(self.handle, abilityId)
982
981
  end
983
- function Unit.prototype.interruptMovement(self)
984
- local handle = self.handle
985
- unitDisableAbility(
986
- handle,
987
- fourCC("Amov"),
988
- true,
989
- false
990
- )
991
- unitDisableAbility(
992
- handle,
993
- fourCC("Amov"),
994
- false,
995
- false
996
- )
997
- end
998
- function Unit.prototype.interruptAttack(self)
999
- unitInterruptAttack(self.handle)
1000
- end
1001
982
  function Unit.prototype.interruptCast(self, abilityId)
1002
983
  local handle = self.handle
1003
984
  unitDisableAbility(handle, abilityId, true, false)
@@ -1392,19 +1373,6 @@ __TS__SetDescriptor(
1392
1373
  },
1393
1374
  true
1394
1375
  )
1395
- __TS__SetDescriptor(
1396
- Unit.prototype,
1397
- "strengthBase",
1398
- {
1399
- get = function(self)
1400
- return getHeroStr(self.handle, false)
1401
- end,
1402
- set = function(self, strengthBase)
1403
- setHeroStr(self.handle, strengthBase, true)
1404
- end
1405
- },
1406
- true
1407
- )
1408
1376
  __TS__SetDescriptor(
1409
1377
  Unit.prototype,
1410
1378
  "strengthBonus",
@@ -1422,19 +1390,6 @@ __TS__SetDescriptor(
1422
1390
  end},
1423
1391
  true
1424
1392
  )
1425
- __TS__SetDescriptor(
1426
- Unit.prototype,
1427
- "agilityBase",
1428
- {
1429
- get = function(self)
1430
- return getHeroAgi(self.handle, false)
1431
- end,
1432
- set = function(self, agilityBase)
1433
- setHeroAgi(self.handle, agilityBase, true)
1434
- end
1435
- },
1436
- true
1437
- )
1438
1393
  __TS__SetDescriptor(
1439
1394
  Unit.prototype,
1440
1395
  "agilityBonus",
@@ -1452,19 +1407,6 @@ __TS__SetDescriptor(
1452
1407
  end},
1453
1408
  true
1454
1409
  )
1455
- __TS__SetDescriptor(
1456
- Unit.prototype,
1457
- "intelligenceBase",
1458
- {
1459
- get = function(self)
1460
- return getHeroInt(self.handle, false)
1461
- end,
1462
- set = function(self, intelligenceBase)
1463
- setHeroInt(self.handle, intelligenceBase, true)
1464
- end
1465
- },
1466
- true
1467
- )
1468
1410
  __TS__SetDescriptor(
1469
1411
  Unit.prototype,
1470
1412
  "intelligenceBonus",
@@ -2172,6 +2114,11 @@ __TS__SetDescriptor(
2172
2114
  end},
2173
2115
  true
2174
2116
  )
2117
+ Unit.levelChangedEvent = __TS__New(
2118
+ ____exports.UnitTriggerEvent,
2119
+ EVENT_PLAYER_HERO_LEVEL,
2120
+ function() return ____exports.Unit:of(getTriggerUnit()) end
2121
+ )
2175
2122
  Unit.deathEvent = __TS__New(
2176
2123
  ____exports.UnitTriggerEvent,
2177
2124
  EVENT_PLAYER_UNIT_DEATH,
@@ -12,7 +12,7 @@ export declare class LocalClient {
12
12
  static get isHD(): boolean;
13
13
  static get graphicsMode(): GraphicsMode;
14
14
  static get isActive(): boolean;
15
- static pingMinimap(x: number, y: number, duration: number, ...parameters: [] | [red: number, green: number, blue: number, extraEffects?: boolean] | [color: Color, extraEffects?: boolean]): void;
15
+ static pingMinimap(x: number, y: number, duration: number, ...parameters: [] | [red: number, green: number, blue: number, flashy?: boolean] | [color: Color, flashy?: boolean]): void;
16
16
  static get mouseFocusUnit(): Async<Unit> | undefined;
17
17
  static get mainSelectedUnit(): Async<Unit> | undefined;
18
18
  static get mainSelectedUnitChangeEvent(): Event<[
@@ -67,7 +67,7 @@ local LocalClient = ____exports.LocalClient
67
67
  LocalClient.name = "LocalClient"
68
68
  function LocalClient.prototype.____constructor(self)
69
69
  end
70
- function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraEffects, blue, extraEffects)
70
+ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrFlashy, blue, flashy)
71
71
  if redOrColor == nil then
72
72
  pingMinimap(x, y, duration)
73
73
  elseif __TS__InstanceOf(redOrColor, Color) then
@@ -78,7 +78,7 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
78
78
  redOrColor.r,
79
79
  redOrColor.g,
80
80
  redOrColor.b,
81
- greenOrExtraEffects or false
81
+ greenOrFlashy or false
82
82
  )
83
83
  else
84
84
  pingMinimapEx(
@@ -86,9 +86,9 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
86
86
  y,
87
87
  duration,
88
88
  redOrColor,
89
- greenOrExtraEffects,
89
+ greenOrFlashy,
90
90
  blue,
91
- extraEffects or false
91
+ flashy or false
92
92
  )
93
93
  end
94
94
  end
@@ -0,0 +1,8 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum HealthRegenerationType {
3
+ NONE = 0,
4
+ ALWAYS = 1,
5
+ BLIGHT = 2,
6
+ DAY = 3,
7
+ NIGHT = 4
8
+ }
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -0,0 +1,8 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class ManaRegenerationAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ get manaRegenerationRateIncreaseFactor(): number[];
7
+ set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
8
+ }
@@ -0,0 +1,26 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.ManaRegenerationAbilityType = __TS__Class()
9
+ local ManaRegenerationAbilityType = ____exports.ManaRegenerationAbilityType
10
+ ManaRegenerationAbilityType.name = "ManaRegenerationAbilityType"
11
+ __TS__ClassExtends(ManaRegenerationAbilityType, AbilityType)
12
+ ManaRegenerationAbilityType.BASE_ID = fourCC("AIrn")
13
+ __TS__SetDescriptor(
14
+ ManaRegenerationAbilityType.prototype,
15
+ "manaRegenerationRateIncreaseFactor",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("Imrp")
19
+ end,
20
+ set = function(self, manaRegenerationRateIncreaseFactor)
21
+ self:setNumberLevelField("Imrp", manaRegenerationRateIncreaseFactor)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ return ____exports
@@ -13,12 +13,18 @@ export declare abstract class DestructibleType extends ObjectDataEntry<Destructi
13
13
  private static readonly idGenerator;
14
14
  protected static generateId(): number;
15
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);
16
20
  get modelPath(): string;
17
21
  set modelPath(modelPath: string);
18
22
  get modelPathSD(): string;
19
23
  set modelPathSD(modelPathSD: string);
20
24
  get modelPathHD(): string;
21
25
  set modelPathHD(modelPathHD: string);
26
+ get occlusionHeight(): number;
27
+ set occlusionHeight(occlusionHeight: number);
22
28
  get armorSoundType(): ArmorSoundType;
23
29
  set armorSoundType(armorSoundType: ArmorSoundType);
24
30
  get armorSoundTypeSD(): ArmorSoundType;
@@ -27,8 +33,14 @@ export declare abstract class DestructibleType extends ObjectDataEntry<Destructi
27
33
  set armorSoundTypeHD(armorSoundTypeHD: ArmorSoundType);
28
34
  get combatClassifications(): CombatClassifications;
29
35
  set combatClassifications(combatClassifications: CombatClassifications);
36
+ get cliffHeight(): number;
37
+ set cliffHeight(cliffHeight: number);
38
+ get isWalkable(): boolean;
39
+ set isWalkable(isWalkable: boolean);
30
40
  get pathingTexturePath(): string;
31
41
  set pathingTexturePath(pathingTexturePath: string);
32
42
  get deadPathingTexturePath(): string;
33
43
  set deadPathingTexturePath(deadPathingTexturePath: string);
44
+ get name(): string;
45
+ set name(name: string);
34
46
  }
@@ -27,6 +27,32 @@ DestructibleType.idGenerator = __TS__New(
27
27
  ObjectDataEntryIdGenerator,
28
28
  fourCC("D000")
29
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
+ )
30
56
  __TS__SetDescriptor(
31
57
  DestructibleType.prototype,
32
58
  "modelPath",
@@ -66,6 +92,19 @@ __TS__SetDescriptor(
66
92
  },
67
93
  true
68
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
+ )
69
108
  __TS__SetDescriptor(
70
109
  DestructibleType.prototype,
71
110
  "armorSoundType",
@@ -121,6 +160,32 @@ __TS__SetDescriptor(
121
160
  },
122
161
  true
123
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
+ )
124
189
  __TS__SetDescriptor(
125
190
  DestructibleType.prototype,
126
191
  "pathingTexturePath",
@@ -147,6 +212,19 @@ __TS__SetDescriptor(
147
212
  },
148
213
  true
149
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
+ )
150
228
  implementReadonlyNumberIndexSupplier(
151
229
  ____exports.DestructibleType,
152
230
  function(id)
@@ -5,6 +5,7 @@ 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;
@@ -25,11 +26,11 @@ export declare class UnitFloatField extends UnitField<number, junitrealfield> {
25
26
  protected setNativeFieldValue(instance: Unit, value: number): boolean;
26
27
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitFloatField>>;
27
28
  }
28
- export declare class UnitIntegerField extends UnitField<number, junitintegerfield> {
29
- protected get defaultValue(): number;
29
+ export declare class UnitIntegerField<T extends number = number> extends UnitField<T, junitintegerfield> {
30
+ protected get defaultValue(): T;
30
31
  protected getNativeFieldById(id: number): junitintegerfield;
31
- protected getNativeFieldValue(instance: Unit): number;
32
- protected setNativeFieldValue(instance: Unit, value: number): boolean;
32
+ protected getNativeFieldValue(instance: Unit): T;
33
+ protected setNativeFieldValue(instance: Unit, value: T): boolean;
33
34
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitIntegerField>>;
34
35
  }
35
36
  export declare class UnitStringField extends UnitField<string, junitstringfield> {
@@ -76,6 +77,8 @@ export declare class UnitPropulsionWindowField extends UnitFloatField {
76
77
  protected getNativeFieldValue(instance: Unit): number;
77
78
  protected setNativeFieldValue(instance: Unit, value: number): boolean;
78
79
  }
80
+ export declare class UnitHealthRegenerationTypeField extends UnitIntegerField<HealthRegenerationType> {
81
+ }
79
82
  export declare class UnitScalingValueField extends UnitFloatField {
80
83
  protected setNativeFieldValue(instance: Unit, value: number): boolean;
81
84
  }
@@ -298,6 +298,10 @@ function UnitPropulsionWindowField.prototype.setNativeFieldValue(self, instance,
298
298
  setUnitPropulsionWindow(instance.handle, value)
299
299
  return true
300
300
  end
301
+ ____exports.UnitHealthRegenerationTypeField = __TS__Class()
302
+ local UnitHealthRegenerationTypeField = ____exports.UnitHealthRegenerationTypeField
303
+ UnitHealthRegenerationTypeField.name = "UnitHealthRegenerationTypeField"
304
+ __TS__ClassExtends(UnitHealthRegenerationTypeField, ____exports.UnitIntegerField)
301
305
  ____exports.UnitScalingValueField = __TS__Class()
302
306
  local UnitScalingValueField = ____exports.UnitScalingValueField
303
307
  UnitScalingValueField.name = "UnitScalingValueField"
@@ -46,6 +46,7 @@ export declare abstract class ObjectField<ObjectDataEntryType extends ObjectData
46
46
  private modifiersByInstance?;
47
47
  getValue(entry: ObjectDataEntryType | InstanceType, includeModifiers?: boolean): ValueType;
48
48
  setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
49
+ updateActualValue(instance: InstanceType): void;
49
50
  applyModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): void;
50
51
  removeModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): boolean;
51
52
  removeValue(entry: ObjectDataEntryType): boolean;
@@ -89,6 +90,7 @@ export declare abstract class ObjectLevelField<ObjectDataEntryType extends Objec
89
90
  protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
90
91
  getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
91
92
  setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
93
+ updateActualValue(instance: InstanceType, level?: number): void;
92
94
  applyModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): void;
93
95
  removeModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): boolean;
94
96
  trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;