warscript 0.0.1-dev.959b9a7 → 0.0.1-dev.987b772
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 +5 -1
- package/core/types/frame.lua +34 -1
- 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/core/util.d.ts +1 -1
- package/core/util.lua +6 -0
- package/decl/index.d.ts +1 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +10 -10
- package/engine/behavior.lua +6 -6
- package/engine/behaviour/ability/apply-buff.d.ts +3 -5
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
- 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 +8 -2
- package/engine/behaviour/unit.lua +27 -0
- package/engine/buff.d.ts +62 -20
- package/engine/buff.lua +247 -72
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +1 -11
- package/engine/internal/ability.lua +2 -78
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/unit/bonus.d.ts +9 -8
- package/engine/internal/unit/bonus.lua +6 -1
- package/engine/internal/unit/item.d.ts +23 -0
- package/engine/internal/unit/item.lua +74 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +25 -6
- package/engine/internal/unit.d.ts +43 -14
- package/engine/internal/unit.lua +264 -95
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +81 -0
- 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/channel.d.ts +0 -1
- 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 +0 -1
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- 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 +12 -1
- package/engine/object-data/entry/item-type.lua +78 -0
- package/engine/object-data/entry/lightning-type.d.ts +0 -1
- package/engine/object-data/entry/unit-type.d.ts +37 -2
- package/engine/object-data/entry/unit-type.lua +333 -49
- 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 +18 -1
- package/engine/object-field/ability.lua +51 -1
- package/engine/object-field.d.ts +0 -1
- 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/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -14
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- 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 +3 -4
- package/utility/bit-set.d.ts +0 -2
- package/utility/linked-set.d.ts +11 -3
- package/utility/linked-set.lua +5 -2
- package/utility/lua-maps.d.ts +1 -2
- package/utility/lua-sets.d.ts +1 -2
- package/utility/types.d.ts +1 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
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
|
|
@@ -728,7 +865,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
865
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
866
|
end
|
|
730
867
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
868
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
869
|
end
|
|
733
870
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
871
|
if unitAddAbility(self.handle, abilityId) 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
|
|
@@ -968,8 +1108,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
968
1108
|
)
|
|
969
1109
|
return targetCollection
|
|
970
1110
|
end
|
|
971
|
-
function Unit.getSelectionOf(self, player)
|
|
972
|
-
|
|
1111
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1112
|
+
if target == nil then
|
|
1113
|
+
target = {}
|
|
1114
|
+
end
|
|
1115
|
+
targetCollection = target
|
|
973
1116
|
targetCollectionNextIndex = 1
|
|
974
1117
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
975
1118
|
return targetCollection
|
|
@@ -1071,12 +1214,27 @@ __TS__SetDescriptor(
|
|
|
1071
1214
|
Unit.prototype,
|
|
1072
1215
|
"weapons",
|
|
1073
1216
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1217
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1218
|
+
end},
|
|
1219
|
+
true
|
|
1220
|
+
)
|
|
1221
|
+
__TS__SetDescriptor(
|
|
1222
|
+
Unit.prototype,
|
|
1223
|
+
"firstWeapon",
|
|
1224
|
+
{get = function(self)
|
|
1225
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1226
|
+
rawset(self, "firstWeapon", weapon)
|
|
1227
|
+
return weapon
|
|
1228
|
+
end},
|
|
1229
|
+
true
|
|
1230
|
+
)
|
|
1231
|
+
__TS__SetDescriptor(
|
|
1232
|
+
Unit.prototype,
|
|
1233
|
+
"secondWeapon",
|
|
1234
|
+
{get = function(self)
|
|
1235
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1236
|
+
rawset(self, "secondWeapon", weapon)
|
|
1237
|
+
return weapon
|
|
1080
1238
|
end},
|
|
1081
1239
|
true
|
|
1082
1240
|
)
|
|
@@ -1233,17 +1391,17 @@ __TS__SetDescriptor(
|
|
|
1233
1391
|
"isTeamGlowVisible",
|
|
1234
1392
|
{
|
|
1235
1393
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1394
|
+
return not self[105]
|
|
1237
1395
|
end,
|
|
1238
1396
|
set = function(self, isTeamGlowVisible)
|
|
1239
1397
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1398
|
+
local ____temp_5
|
|
1241
1399
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1400
|
+
____temp_5 = true
|
|
1243
1401
|
else
|
|
1244
|
-
|
|
1402
|
+
____temp_5 = nil
|
|
1245
1403
|
end
|
|
1246
|
-
self[
|
|
1404
|
+
self[105] = ____temp_5
|
|
1247
1405
|
end
|
|
1248
1406
|
},
|
|
1249
1407
|
true
|
|
@@ -1253,7 +1411,7 @@ __TS__SetDescriptor(
|
|
|
1253
1411
|
"color",
|
|
1254
1412
|
{set = function(self, color)
|
|
1255
1413
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1414
|
+
if self[105] then
|
|
1257
1415
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1416
|
end
|
|
1259
1417
|
end},
|
|
@@ -1277,10 +1435,14 @@ __TS__SetDescriptor(
|
|
|
1277
1435
|
"maxHealth",
|
|
1278
1436
|
{
|
|
1279
1437
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1438
|
+
return BlzGetUnitMaxHP(self.handle) - (self[103] or 0) - (self[104] or 0)
|
|
1281
1439
|
end,
|
|
1282
1440
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1441
|
+
if maxHealth < 1 and self[102] ~= nil then
|
|
1442
|
+
self[103] = (self[103] or 0) + (1 - maxHealth)
|
|
1443
|
+
maxHealth = 1
|
|
1444
|
+
end
|
|
1445
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[104] or 0))
|
|
1284
1446
|
end
|
|
1285
1447
|
},
|
|
1286
1448
|
true
|
|
@@ -1322,10 +1484,10 @@ __TS__SetDescriptor(
|
|
|
1322
1484
|
"health",
|
|
1323
1485
|
{
|
|
1324
1486
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1487
|
+
return GetWidgetLife(self.handle) - (self[104] or 0)
|
|
1326
1488
|
end,
|
|
1327
1489
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1490
|
+
SetWidgetLife(self.handle, health + (self[104] or 0))
|
|
1329
1491
|
end
|
|
1330
1492
|
},
|
|
1331
1493
|
true
|
|
@@ -1903,7 +2065,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2065
|
Unit.onResurrect = __TS__New(
|
|
1904
2066
|
InitializingEvent,
|
|
1905
2067
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2068
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2069
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2070
|
dead[unit] = true
|
|
@@ -1919,10 +2080,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2080
|
Unit.morphEvent = __TS__New(
|
|
1920
2081
|
InitializingEvent,
|
|
1921
2082
|
function(event)
|
|
2083
|
+
local function ifNotLeft(unit)
|
|
2084
|
+
local handle = unit.handle
|
|
2085
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2086
|
+
invoke(event, unit)
|
|
2087
|
+
end
|
|
2088
|
+
end
|
|
1922
2089
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2090
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2091
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2092
|
end
|
|
1927
2093
|
end)
|
|
1928
2094
|
end
|
|
@@ -1960,27 +2126,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2126
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2127
|
InitializingEvent,
|
|
1962
2128
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2129
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2130
|
+
local ____GetSpellTargetUnit_result_8
|
|
1966
2131
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2132
|
+
____GetSpellTargetUnit_result_8 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2133
|
else
|
|
1969
|
-
local
|
|
2134
|
+
local ____GetSpellTargetItem_result_7
|
|
1970
2135
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2136
|
+
____GetSpellTargetItem_result_7 = Item:of(GetSpellTargetItem())
|
|
1972
2137
|
else
|
|
1973
|
-
local
|
|
2138
|
+
local ____GetSpellTargetDestructable_result_6
|
|
1974
2139
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2140
|
+
____GetSpellTargetDestructable_result_6 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2141
|
else
|
|
1977
|
-
|
|
2142
|
+
____GetSpellTargetDestructable_result_6 = nil
|
|
1978
2143
|
end
|
|
1979
|
-
|
|
2144
|
+
____GetSpellTargetItem_result_7 = ____GetSpellTargetDestructable_result_6
|
|
1980
2145
|
end
|
|
1981
|
-
|
|
2146
|
+
____GetSpellTargetUnit_result_8 = ____GetSpellTargetItem_result_7
|
|
1982
2147
|
end
|
|
1983
|
-
local target =
|
|
2148
|
+
local target = ____GetSpellTargetUnit_result_8
|
|
1984
2149
|
if target then
|
|
1985
2150
|
invoke(event, unit, id, target)
|
|
1986
2151
|
end
|
|
@@ -2177,7 +2342,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2342
|
)
|
|
2178
2343
|
Unit.onDamaging = (function()
|
|
2179
2344
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2345
|
local trigger = CreateTrigger()
|
|
2182
2346
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2347
|
TriggerAddCondition(
|
|
@@ -2276,7 +2440,6 @@ end)()
|
|
|
2276
2440
|
Unit.onDamage = __TS__New(
|
|
2277
2441
|
InitializingEvent,
|
|
2278
2442
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2443
|
local trigger = CreateTrigger()
|
|
2281
2444
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2445
|
TriggerAddCondition(
|
|
@@ -2292,6 +2455,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2455
|
damageType = BlzGetEventDamageType(),
|
|
2293
2456
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2457
|
isAttack = BlzGetEventIsAttack(),
|
|
2458
|
+
originalAmount = GetEventDamage(),
|
|
2295
2459
|
preventDeath = damageEventPreventDeath
|
|
2296
2460
|
}
|
|
2297
2461
|
local evData = setmetatable(
|
|
@@ -2308,7 +2472,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2472
|
invoke(event, source, target, evData)
|
|
2309
2473
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2474
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2475
|
+
target[104] = (target[104] or 0) + bonusHealth
|
|
2312
2476
|
BlzSetUnitMaxHP(
|
|
2313
2477
|
target.handle,
|
|
2314
2478
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2486,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2486
|
evData[0],
|
|
2323
2487
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2488
|
)
|
|
2325
|
-
target[
|
|
2489
|
+
target[104] = (target[104] or 0) - bonusHealth
|
|
2326
2490
|
SetWidgetLife(
|
|
2327
2491
|
target.handle,
|
|
2328
2492
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,7 +2506,7 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2506
|
DestroyTrigger(trigger)
|
|
2343
2507
|
end
|
|
2344
2508
|
)
|
|
2345
|
-
Unit.
|
|
2509
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2510
|
____exports.UnitTriggerEvent,
|
|
2347
2511
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2512
|
function()
|
|
@@ -2353,7 +2517,7 @@ Unit.onItemDrop = __TS__New(
|
|
|
2353
2517
|
return IgnoreEvent
|
|
2354
2518
|
end
|
|
2355
2519
|
)
|
|
2356
|
-
Unit.
|
|
2520
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2521
|
____exports.UnitTriggerEvent,
|
|
2358
2522
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2523
|
function()
|
|
@@ -2364,10 +2528,15 @@ Unit.onItemPickup = __TS__New(
|
|
|
2364
2528
|
return IgnoreEvent
|
|
2365
2529
|
end
|
|
2366
2530
|
)
|
|
2367
|
-
Unit.
|
|
2531
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2532
|
____exports.UnitTriggerEvent,
|
|
2369
2533
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function() return ____exports.Unit:of(
|
|
2534
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2535
|
+
)
|
|
2536
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2537
|
+
____exports.UnitTriggerEvent,
|
|
2538
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2539
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2371
2540
|
)
|
|
2372
2541
|
__TS__ObjectDefineProperty(
|
|
2373
2542
|
Unit,
|
package/engine/local-client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Unit } from "../core/types/unit";
|
|
3
3
|
import { Async } from "../core/types/async";
|
|
4
|
-
import { TriggerEvent } from "../event";
|
|
4
|
+
import { Event, TriggerEvent } from "../event";
|
|
5
5
|
import { GraphicsMode } from "./index";
|
|
6
6
|
export declare class LocalClient {
|
|
7
7
|
private constructor();
|
|
@@ -11,6 +11,11 @@ export declare class LocalClient {
|
|
|
11
11
|
static get isHD(): boolean;
|
|
12
12
|
static get graphicsMode(): GraphicsMode;
|
|
13
13
|
static get isActive(): boolean;
|
|
14
|
-
static get mouseFocusUnit(): Async<Unit
|
|
14
|
+
static get mouseFocusUnit(): Async<Unit> | undefined;
|
|
15
|
+
static get mainSelectedUnit(): Async<Unit> | undefined;
|
|
16
|
+
static get mainSelectedUnitChangeEvent(): Event<[
|
|
17
|
+
previousMainSelectedUnit: Unit | undefined,
|
|
18
|
+
newMainSelectedUnit: Unit | undefined
|
|
19
|
+
]>;
|
|
15
20
|
static readonly onDisconnect: TriggerEvent<[]>;
|
|
16
21
|
}
|