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.
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +4 -2
- package/engine/behavior.lua +69 -11
- package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
- package/engine/behaviour/unit/stun-immunity.lua +5 -4
- package/engine/behaviour/unit.lua +13 -3
- package/engine/buff.d.ts +7 -2
- package/engine/buff.lua +42 -24
- 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.lua +3 -3
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/scale.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +12 -5
- package/engine/internal/unit.d.ts +1 -8
- package/engine/internal/unit.lua +16 -69
- package/engine/local-client.d.ts +1 -1
- package/engine/local-client.lua +4 -4
- 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 +12 -0
- package/engine/object-data/entry/destructible-type.lua +78 -0
- package/engine/object-field/unit.d.ts +7 -4
- package/engine/object-field/unit.lua +4 -0
- package/engine/object-field.d.ts +2 -0
- package/engine/object-field.lua +171 -115
- package/engine/standard/fields/unit.d.ts +11 -5
- package/engine/standard/fields/unit.lua +13 -4
- package/engine/unit.d.ts +2 -0
- package/engine/unit.lua +2 -0
- package/objutil/buff.lua +9 -7
- package/package.json +1 -1
- package/utility/linked-map.d.ts +26 -0
- package/utility/linked-map.lua +66 -0
- package/utility/linked-set.lua +4 -0
- package/utility/records.lua +20 -1
|
@@ -36,11 +36,18 @@ local instantOrderIds = luaSetOf(
|
|
|
36
36
|
orderId("undivineshield"),
|
|
37
37
|
orderId("unimmolation")
|
|
38
38
|
)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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>;
|
package/engine/internal/unit.lua
CHANGED
|
@@ -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,
|
|
715
|
-
self.events = self.events or (
|
|
716
|
-
local eventId = GetHandleId(
|
|
717
|
-
|
|
718
|
-
|
|
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,
|
|
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
|
|
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,
|
package/engine/local-client.d.ts
CHANGED
|
@@ -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,
|
|
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<[
|
package/engine/local-client.lua
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
89
|
+
greenOrFlashy,
|
|
90
90
|
blue,
|
|
91
|
-
|
|
91
|
+
flashy or false
|
|
92
92
|
)
|
|
93
93
|
end
|
|
94
94
|
end
|
|
@@ -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<
|
|
29
|
-
protected get defaultValue():
|
|
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):
|
|
32
|
-
protected setNativeFieldValue(instance: Unit, value:
|
|
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"
|
package/engine/object-field.d.ts
CHANGED
|
@@ -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;
|