warscript 0.0.1-dev.ea69747 → 0.0.1-dev.ec4cf89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +12 -0
- package/attributes.lua +16 -0
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/core/types/frame.d.ts +2 -1
- package/core/types/frame.lua +2 -0
- package/core/types/group.d.ts +0 -1
- package/core/types/handle.d.ts +2 -1
- package/core/types/handle.lua +5 -0
- package/core/types/image.d.ts +0 -1
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/unit.lua +8 -0
- package/decl/index.d.ts +1 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +10 -10
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +31 -9
- package/engine/behaviour/ability/damage.d.ts +33 -11
- package/engine/behaviour/ability/damage.lua +89 -31
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.lua +4 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +8 -1
- package/engine/behaviour/ability.lua +62 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
- package/engine/behaviour/unit.d.ts +3 -2
- package/engine/behaviour/unit.lua +7 -0
- package/engine/buff.d.ts +36 -15
- package/engine/buff.lua +162 -68
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +1 -1
- package/engine/internal/mechanics/ability-duration.d.ts +1 -3
- package/engine/internal/mechanics/ability-duration.lua +2 -0
- package/engine/internal/mechanics/cast-ability.d.ts +2 -0
- package/engine/internal/mechanics/cast-ability.lua +86 -0
- package/engine/internal/unit/bonus.d.ts +5 -6
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +1 -1
- package/engine/internal/unit.d.ts +37 -10
- package/engine/internal/unit.lua +248 -88
- package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
- package/engine/object-data/entry/ability-type/blink.lua +39 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- package/engine/object-data/entry/ability-type.d.ts +1 -1
- package/engine/object-data/entry/ability-type.lua +1 -0
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +27 -71
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +0 -1
- package/engine/object-data/entry/destructible-type.d.ts +0 -1
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +0 -1
- package/engine/object-data/entry/lightning-type.d.ts +0 -1
- package/engine/object-data/entry/unit-type.d.ts +42 -2
- package/engine/object-data/entry/unit-type.lua +378 -50
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +0 -1
- package/engine/object-data/entry.d.ts +2 -3
- package/engine/object-field/ability.d.ts +8 -6
- package/engine/object-field/ability.lua +6 -0
- package/engine/object-field/unit.d.ts +1 -0
- package/engine/object-field/unit.lua +3 -0
- package/engine/object-field.d.ts +6 -4
- package/engine/object-field.lua +38 -12
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -0
- package/engine/standard/entries/unit-type.d.ts +42 -1
- package/engine/standard/entries/unit-type.lua +42 -1
- package/engine/standard/fields/ability.d.ts +1 -1
- package/engine/standard/fields/ability.lua +1 -1
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +10 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/exception.d.ts +2 -0
- package/exception.lua +4 -0
- package/global/vec2.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -14
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +4 -5
- package/utility/arrays.lua +4 -1
- package/utility/bit-set.d.ts +0 -2
- package/utility/linked-set.d.ts +21 -8
- package/utility/linked-set.lua +16 -0
- package/utility/lua-maps.d.ts +1 -2
- package/utility/lua-sets.d.ts +1 -2
- package/utility/types.d.ts +2 -2
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="@typescript-to-lua/language-extensions" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
2
|
import { Handle, HandleDestructor } from "../../core/types/handle";
|
|
4
3
|
import { Player } from "../../core/types/player";
|
|
@@ -68,23 +67,44 @@ declare const modifiers: {
|
|
|
68
67
|
speed: (unit: junit, value: number) => void;
|
|
69
68
|
armor: (unit: junit, value: number) => void;
|
|
70
69
|
};
|
|
71
|
-
|
|
70
|
+
export declare class UnitWeapon {
|
|
71
|
+
readonly unit: Unit;
|
|
72
72
|
readonly index: 0 | 1;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
constructor(unit: Unit, index: 0 | 1);
|
|
74
|
+
get cooldown(): number;
|
|
75
|
+
set cooldown(cooldown: number);
|
|
76
|
+
get damage(): [minimumDamage: number, maximumDamage: number];
|
|
77
|
+
set damage([minimumDamage, maximumDamage]: [number, number]);
|
|
78
|
+
get damageBase(): number;
|
|
79
|
+
set damageBase(damageBase: number);
|
|
80
|
+
get damageDiceCount(): number;
|
|
81
|
+
set damageDiceCount(damageDiceCount: number);
|
|
82
|
+
get damageDiceSideCount(): number;
|
|
83
|
+
set damageDiceSideCount(damageDiceSideCount: number);
|
|
84
|
+
get range(): number;
|
|
85
|
+
set range(range: number);
|
|
86
|
+
get impactDelay(): number;
|
|
87
|
+
set impactDelay(impactDelay: number);
|
|
88
|
+
get missileArc(): number;
|
|
89
|
+
set missileArc(missileArc: number);
|
|
90
|
+
get missileModelPath(): string;
|
|
91
|
+
set missileModelPath(missileModelPath: string);
|
|
92
|
+
get missileSpeed(): number;
|
|
93
|
+
set missileSpeed(missileSpeed: number);
|
|
78
94
|
}
|
|
79
95
|
declare const enum UnitPropertyKey {
|
|
80
96
|
IS_PAUSED = 100,
|
|
81
97
|
STUN_COUNTER = 101,
|
|
82
|
-
|
|
83
|
-
|
|
98
|
+
DELAY_HEALTH_CHECKS_COUNTER = 102,
|
|
99
|
+
DELAY_HEALTH_CHECKS_HEALTH_BONUS = 103,
|
|
100
|
+
PREVENT_DEATH_HEALTH_BONUS = 104,
|
|
101
|
+
IS_TEAM_GLOW_HIDDEN = 105
|
|
84
102
|
}
|
|
85
103
|
export declare class Unit extends Handle<junit> {
|
|
86
104
|
private [UnitPropertyKey.IS_PAUSED]?;
|
|
87
105
|
private [UnitPropertyKey.STUN_COUNTER]?;
|
|
106
|
+
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
|
|
107
|
+
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
|
|
88
108
|
private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
|
|
89
109
|
private [UnitPropertyKey.IS_TEAM_GLOW_HIDDEN]?;
|
|
90
110
|
private _owner?;
|
|
@@ -123,6 +143,8 @@ export declare class Unit extends Handle<junit> {
|
|
|
123
143
|
playAnimation(animation: number): void;
|
|
124
144
|
queueAnimation(animation: string): void;
|
|
125
145
|
get weapons(): [UnitWeapon, UnitWeapon];
|
|
146
|
+
get firstWeapon(): UnitWeapon;
|
|
147
|
+
get secondWeapon(): UnitWeapon;
|
|
126
148
|
get level(): number;
|
|
127
149
|
set level(v: number);
|
|
128
150
|
get xp(): number;
|
|
@@ -148,6 +170,10 @@ export declare class Unit extends Handle<junit> {
|
|
|
148
170
|
set color(color: PlayerColor);
|
|
149
171
|
get acquisitionRange(): number;
|
|
150
172
|
set acquisitionRange(v: number);
|
|
173
|
+
/**
|
|
174
|
+
* Keeps this unit alive even if its health becomes negative until the current game thread yields.
|
|
175
|
+
*/
|
|
176
|
+
delayHealthChecks(): void;
|
|
151
177
|
get maxHealth(): number;
|
|
152
178
|
set maxHealth(maxHealth: number);
|
|
153
179
|
get healthRegenerationRate(): number;
|
|
@@ -201,7 +227,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
201
227
|
isSelected(player: Player): boolean;
|
|
202
228
|
explode(): void;
|
|
203
229
|
kill(): void;
|
|
204
|
-
revive(
|
|
230
|
+
revive(x: number, y: number, doEffect?: boolean): void;
|
|
205
231
|
healTarget(target: Widget, amount: number): void;
|
|
206
232
|
useItem(item: Item): boolean;
|
|
207
233
|
issueImmediateOrder(order: number): boolean;
|
|
@@ -222,6 +248,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
222
248
|
getAbilityById(abilityId: number): UnitAbility | undefined;
|
|
223
249
|
removeAbility(abilityId: number): boolean;
|
|
224
250
|
hideAbility(abilityId: number, flag: boolean): void;
|
|
251
|
+
getAbilityRemainingCooldown(abilityId: number): number;
|
|
225
252
|
startAbilityCooldown(abilityId: number, cooldown: number): void;
|
|
226
253
|
endAbilityCooldown(abilityId: number): void;
|
|
227
254
|
interruptAttack(): void;
|
package/engine/internal/unit.lua
CHANGED
|
@@ -5,9 +5,12 @@ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
|
5
5
|
local __TS__New = ____lualib.__TS__New
|
|
6
6
|
local __TS__Class = ____lualib.__TS__Class
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
8
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
10
|
+
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
11
|
+
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
12
|
+
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
9
13
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
|
-
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
11
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
12
15
|
local Set = ____lualib.Set
|
|
13
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -92,6 +95,10 @@ local isUnitInRangeXY = IsUnitInRangeXY
|
|
|
92
95
|
local isUnitInRange = IsUnitInRange
|
|
93
96
|
local setResourceAmount = SetResourceAmount
|
|
94
97
|
local getResourceAmount = GetResourceAmount
|
|
98
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
99
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
100
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
101
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
102
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
103
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
104
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -275,16 +282,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
282
|
end
|
|
276
283
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
284
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
285
|
return setmetatable(
|
|
280
|
-
|
|
286
|
+
{},
|
|
281
287
|
{
|
|
282
288
|
__index = function(self, id)
|
|
283
289
|
if type(id) ~= "number" then
|
|
284
290
|
return event[id]
|
|
285
291
|
end
|
|
286
292
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
293
|
event:addListener(function(...)
|
|
289
294
|
local id = idGetter(...)
|
|
290
295
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +327,6 @@ local function dispatchAbility(event)
|
|
|
322
327
|
return event[id]
|
|
323
328
|
end
|
|
324
329
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
330
|
event:addListener(function(unit, ability, ...)
|
|
327
331
|
local dispatched = rawget(self, ability.typeId)
|
|
328
332
|
if dispatched ~= nil then
|
|
@@ -387,51 +391,158 @@ local getters = {
|
|
|
387
391
|
return BlzGetUnitArmor(unit)
|
|
388
392
|
end
|
|
389
393
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
394
|
+
____exports.UnitWeapon = __TS__Class()
|
|
395
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
396
|
+
UnitWeapon.name = "UnitWeapon"
|
|
397
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
398
|
+
self.unit = unit
|
|
399
|
+
self.index = index
|
|
400
|
+
end
|
|
401
|
+
__TS__SetDescriptor(
|
|
402
|
+
UnitWeapon.prototype,
|
|
403
|
+
"cooldown",
|
|
404
|
+
{
|
|
405
|
+
get = function(self)
|
|
406
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
407
|
+
end,
|
|
408
|
+
set = function(self, cooldown)
|
|
409
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
410
|
+
end
|
|
411
|
+
},
|
|
412
|
+
true
|
|
413
|
+
)
|
|
414
|
+
__TS__SetDescriptor(
|
|
415
|
+
UnitWeapon.prototype,
|
|
416
|
+
"damage",
|
|
417
|
+
{
|
|
418
|
+
get = function(self)
|
|
419
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
420
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
421
|
+
return {minimumDamage, maximumDamage}
|
|
422
|
+
end,
|
|
423
|
+
set = function(self, ____bindingPattern0)
|
|
424
|
+
local maximumDamage
|
|
425
|
+
local minimumDamage
|
|
426
|
+
minimumDamage = ____bindingPattern0[1]
|
|
427
|
+
maximumDamage = ____bindingPattern0[2]
|
|
428
|
+
self.damageBase = minimumDamage - 1
|
|
429
|
+
self.damageDiceCount = 1
|
|
430
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
435
|
+
__TS__SetDescriptor(
|
|
436
|
+
UnitWeapon.prototype,
|
|
437
|
+
"damageBase",
|
|
438
|
+
{
|
|
439
|
+
get = function(self)
|
|
440
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
441
|
+
end,
|
|
442
|
+
set = function(self, damageBase)
|
|
443
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
444
|
+
end
|
|
445
|
+
},
|
|
446
|
+
true
|
|
447
|
+
)
|
|
448
|
+
__TS__SetDescriptor(
|
|
449
|
+
UnitWeapon.prototype,
|
|
450
|
+
"damageDiceCount",
|
|
451
|
+
{
|
|
452
|
+
get = function(self)
|
|
453
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
454
|
+
end,
|
|
455
|
+
set = function(self, damageDiceCount)
|
|
456
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
457
|
+
end
|
|
458
|
+
},
|
|
459
|
+
true
|
|
460
|
+
)
|
|
461
|
+
__TS__SetDescriptor(
|
|
462
|
+
UnitWeapon.prototype,
|
|
463
|
+
"damageDiceSideCount",
|
|
464
|
+
{
|
|
465
|
+
get = function(self)
|
|
466
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
467
|
+
end,
|
|
468
|
+
set = function(self, damageDiceSideCount)
|
|
469
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
470
|
+
end
|
|
471
|
+
},
|
|
472
|
+
true
|
|
473
|
+
)
|
|
474
|
+
__TS__SetDescriptor(
|
|
475
|
+
UnitWeapon.prototype,
|
|
476
|
+
"range",
|
|
477
|
+
{
|
|
478
|
+
get = function(self)
|
|
479
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
480
|
+
end,
|
|
481
|
+
set = function(self, range)
|
|
482
|
+
local handle = self.unit.handle
|
|
483
|
+
local index = self.index
|
|
484
|
+
setUnitWeaponRealField(
|
|
485
|
+
handle,
|
|
486
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
487
|
+
index + 1,
|
|
488
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
489
|
+
)
|
|
490
|
+
end
|
|
491
|
+
},
|
|
492
|
+
true
|
|
493
|
+
)
|
|
494
|
+
__TS__SetDescriptor(
|
|
495
|
+
UnitWeapon.prototype,
|
|
496
|
+
"impactDelay",
|
|
497
|
+
{
|
|
498
|
+
get = function(self)
|
|
499
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
500
|
+
end,
|
|
501
|
+
set = function(self, impactDelay)
|
|
502
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
503
|
+
end
|
|
504
|
+
},
|
|
505
|
+
true
|
|
506
|
+
)
|
|
507
|
+
__TS__SetDescriptor(
|
|
508
|
+
UnitWeapon.prototype,
|
|
509
|
+
"missileArc",
|
|
510
|
+
{
|
|
511
|
+
get = function(self)
|
|
512
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
513
|
+
end,
|
|
514
|
+
set = function(self, missileArc)
|
|
515
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
516
|
+
end
|
|
517
|
+
},
|
|
518
|
+
true
|
|
519
|
+
)
|
|
520
|
+
__TS__SetDescriptor(
|
|
521
|
+
UnitWeapon.prototype,
|
|
522
|
+
"missileModelPath",
|
|
523
|
+
{
|
|
524
|
+
get = function(self)
|
|
525
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
526
|
+
end,
|
|
527
|
+
set = function(self, missileModelPath)
|
|
528
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
529
|
+
end
|
|
530
|
+
},
|
|
531
|
+
true
|
|
532
|
+
)
|
|
533
|
+
__TS__SetDescriptor(
|
|
534
|
+
UnitWeapon.prototype,
|
|
535
|
+
"missileSpeed",
|
|
536
|
+
{
|
|
537
|
+
get = function(self)
|
|
538
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
539
|
+
end,
|
|
540
|
+
set = function(self, missileSpeed)
|
|
541
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
542
|
+
end
|
|
543
|
+
},
|
|
544
|
+
true
|
|
545
|
+
)
|
|
435
546
|
local unitInventorySize = UnitInventorySize
|
|
436
547
|
local unitItemInSlot = UnitItemInSlot
|
|
437
548
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -442,8 +553,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
553
|
local unitAddAbility = UnitAddAbility
|
|
443
554
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
555
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
556
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
557
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
558
|
if ability == nil then
|
|
@@ -520,6 +629,23 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
629
|
ShowUnit(dummy, false)
|
|
521
630
|
dummies[player] = dummy
|
|
522
631
|
end
|
|
632
|
+
local function delayHealthChecksCallback(unit)
|
|
633
|
+
local counter = (unit[102] or 0) - 1
|
|
634
|
+
if counter ~= 0 then
|
|
635
|
+
unit[102] = counter
|
|
636
|
+
return
|
|
637
|
+
end
|
|
638
|
+
unit[102] = nil
|
|
639
|
+
local healthBonus = unit[103]
|
|
640
|
+
if healthBonus ~= nil then
|
|
641
|
+
unit[103] = nil
|
|
642
|
+
local handle = unit.handle
|
|
643
|
+
BlzSetUnitMaxHP(
|
|
644
|
+
handle,
|
|
645
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
646
|
+
)
|
|
647
|
+
end
|
|
648
|
+
end
|
|
523
649
|
____exports.Unit = __TS__Class()
|
|
524
650
|
local Unit = ____exports.Unit
|
|
525
651
|
Unit.name = "Unit"
|
|
@@ -674,6 +800,10 @@ end
|
|
|
674
800
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
801
|
queueUnitAnimation(self.handle, animation)
|
|
676
802
|
end
|
|
803
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
804
|
+
self[102] = (self[102] or 0) + 1
|
|
805
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
806
|
+
end
|
|
677
807
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
808
|
setUnitPosition(self.handle, x, y)
|
|
679
809
|
end
|
|
@@ -687,8 +817,15 @@ end
|
|
|
687
817
|
function Unit.prototype.kill(self)
|
|
688
818
|
killUnit(self.handle)
|
|
689
819
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
820
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
821
|
+
local ____ReviveHero_4 = ReviveHero
|
|
822
|
+
local ____array_3 = __TS__SparseArrayNew(self.handle, x, y)
|
|
823
|
+
local ____doEffect_2 = doEffect
|
|
824
|
+
if ____doEffect_2 == nil then
|
|
825
|
+
____doEffect_2 = false
|
|
826
|
+
end
|
|
827
|
+
__TS__SparseArrayPush(____array_3, ____doEffect_2)
|
|
828
|
+
____ReviveHero_4(__TS__SparseArraySpread(____array_3))
|
|
692
829
|
end
|
|
693
830
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
831
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -784,6 +921,9 @@ end
|
|
|
784
921
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
922
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
923
|
end
|
|
924
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
925
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
926
|
+
end
|
|
787
927
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
928
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
929
|
end
|
|
@@ -1071,12 +1211,27 @@ __TS__SetDescriptor(
|
|
|
1071
1211
|
Unit.prototype,
|
|
1072
1212
|
"weapons",
|
|
1073
1213
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1214
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1215
|
+
end},
|
|
1216
|
+
true
|
|
1217
|
+
)
|
|
1218
|
+
__TS__SetDescriptor(
|
|
1219
|
+
Unit.prototype,
|
|
1220
|
+
"firstWeapon",
|
|
1221
|
+
{get = function(self)
|
|
1222
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1223
|
+
rawset(self, "firstWeapon", weapon)
|
|
1224
|
+
return weapon
|
|
1225
|
+
end},
|
|
1226
|
+
true
|
|
1227
|
+
)
|
|
1228
|
+
__TS__SetDescriptor(
|
|
1229
|
+
Unit.prototype,
|
|
1230
|
+
"secondWeapon",
|
|
1231
|
+
{get = function(self)
|
|
1232
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1233
|
+
rawset(self, "secondWeapon", weapon)
|
|
1234
|
+
return weapon
|
|
1080
1235
|
end},
|
|
1081
1236
|
true
|
|
1082
1237
|
)
|
|
@@ -1233,17 +1388,17 @@ __TS__SetDescriptor(
|
|
|
1233
1388
|
"isTeamGlowVisible",
|
|
1234
1389
|
{
|
|
1235
1390
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1391
|
+
return not self[105]
|
|
1237
1392
|
end,
|
|
1238
1393
|
set = function(self, isTeamGlowVisible)
|
|
1239
1394
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1395
|
+
local ____temp_5
|
|
1241
1396
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1397
|
+
____temp_5 = true
|
|
1243
1398
|
else
|
|
1244
|
-
|
|
1399
|
+
____temp_5 = nil
|
|
1245
1400
|
end
|
|
1246
|
-
self[
|
|
1401
|
+
self[105] = ____temp_5
|
|
1247
1402
|
end
|
|
1248
1403
|
},
|
|
1249
1404
|
true
|
|
@@ -1253,7 +1408,7 @@ __TS__SetDescriptor(
|
|
|
1253
1408
|
"color",
|
|
1254
1409
|
{set = function(self, color)
|
|
1255
1410
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1411
|
+
if self[105] then
|
|
1257
1412
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1413
|
end
|
|
1259
1414
|
end},
|
|
@@ -1277,10 +1432,14 @@ __TS__SetDescriptor(
|
|
|
1277
1432
|
"maxHealth",
|
|
1278
1433
|
{
|
|
1279
1434
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1435
|
+
return BlzGetUnitMaxHP(self.handle) - (self[103] or 0) - (self[104] or 0)
|
|
1281
1436
|
end,
|
|
1282
1437
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1438
|
+
if maxHealth < 1 and self[102] ~= nil then
|
|
1439
|
+
self[103] = (self[103] or 0) + (1 - maxHealth)
|
|
1440
|
+
maxHealth = 1
|
|
1441
|
+
end
|
|
1442
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[104] or 0))
|
|
1284
1443
|
end
|
|
1285
1444
|
},
|
|
1286
1445
|
true
|
|
@@ -1322,10 +1481,10 @@ __TS__SetDescriptor(
|
|
|
1322
1481
|
"health",
|
|
1323
1482
|
{
|
|
1324
1483
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1484
|
+
return GetWidgetLife(self.handle) - (self[104] or 0)
|
|
1326
1485
|
end,
|
|
1327
1486
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1487
|
+
SetWidgetLife(self.handle, health + (self[104] or 0))
|
|
1329
1488
|
end
|
|
1330
1489
|
},
|
|
1331
1490
|
true
|
|
@@ -1903,7 +2062,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2062
|
Unit.onResurrect = __TS__New(
|
|
1904
2063
|
InitializingEvent,
|
|
1905
2064
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2065
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2066
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2067
|
dead[unit] = true
|
|
@@ -1919,10 +2077,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2077
|
Unit.morphEvent = __TS__New(
|
|
1920
2078
|
InitializingEvent,
|
|
1921
2079
|
function(event)
|
|
2080
|
+
local function ifNotLeft(unit)
|
|
2081
|
+
local handle = unit.handle
|
|
2082
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2083
|
+
invoke(event, unit)
|
|
2084
|
+
end
|
|
2085
|
+
end
|
|
1922
2086
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2087
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2088
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2089
|
end
|
|
1927
2090
|
end)
|
|
1928
2091
|
end
|
|
@@ -1960,27 +2123,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2123
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2124
|
InitializingEvent,
|
|
1962
2125
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2126
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2127
|
+
local ____GetSpellTargetUnit_result_8
|
|
1966
2128
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2129
|
+
____GetSpellTargetUnit_result_8 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2130
|
else
|
|
1969
|
-
local
|
|
2131
|
+
local ____GetSpellTargetItem_result_7
|
|
1970
2132
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2133
|
+
____GetSpellTargetItem_result_7 = Item:of(GetSpellTargetItem())
|
|
1972
2134
|
else
|
|
1973
|
-
local
|
|
2135
|
+
local ____GetSpellTargetDestructable_result_6
|
|
1974
2136
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2137
|
+
____GetSpellTargetDestructable_result_6 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2138
|
else
|
|
1977
|
-
|
|
2139
|
+
____GetSpellTargetDestructable_result_6 = nil
|
|
1978
2140
|
end
|
|
1979
|
-
|
|
2141
|
+
____GetSpellTargetItem_result_7 = ____GetSpellTargetDestructable_result_6
|
|
1980
2142
|
end
|
|
1981
|
-
|
|
2143
|
+
____GetSpellTargetUnit_result_8 = ____GetSpellTargetItem_result_7
|
|
1982
2144
|
end
|
|
1983
|
-
local target =
|
|
2145
|
+
local target = ____GetSpellTargetUnit_result_8
|
|
1984
2146
|
if target then
|
|
1985
2147
|
invoke(event, unit, id, target)
|
|
1986
2148
|
end
|
|
@@ -2177,7 +2339,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2339
|
)
|
|
2178
2340
|
Unit.onDamaging = (function()
|
|
2179
2341
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2342
|
local trigger = CreateTrigger()
|
|
2182
2343
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2344
|
TriggerAddCondition(
|
|
@@ -2276,7 +2437,6 @@ end)()
|
|
|
2276
2437
|
Unit.onDamage = __TS__New(
|
|
2277
2438
|
InitializingEvent,
|
|
2278
2439
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2440
|
local trigger = CreateTrigger()
|
|
2281
2441
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2442
|
TriggerAddCondition(
|
|
@@ -2308,7 +2468,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2468
|
invoke(event, source, target, evData)
|
|
2309
2469
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2470
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2471
|
+
target[104] = (target[104] or 0) + bonusHealth
|
|
2312
2472
|
BlzSetUnitMaxHP(
|
|
2313
2473
|
target.handle,
|
|
2314
2474
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2482,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2482
|
evData[0],
|
|
2323
2483
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2484
|
)
|
|
2325
|
-
target[
|
|
2485
|
+
target[104] = (target[104] or 0) - bonusHealth
|
|
2326
2486
|
SetWidgetLife(
|
|
2327
2487
|
target.handle,
|
|
2328
2488
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class BlinkAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get maximumRange(): number[];
|
|
7
|
+
set maximumRange(maximumRange: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
get minimumRange(): number[];
|
|
9
|
+
set minimumRange(minimumRange: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
}
|