warscript 0.0.1-dev.ee2345e → 0.0.1-dev.f967846
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 +0 -1
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/core/types/frame.d.ts +8 -1
- package/core/types/frame.lua +93 -1
- package/core/types/group.d.ts +0 -1
- 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 +3 -11
- package/engine/internal/ability.lua +9 -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 +24 -0
- package/engine/internal/unit/item.lua +84 -0
- package/engine/internal/unit/main-selected.d.ts +7 -0
- package/engine/internal/unit/main-selected.lua +40 -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 +57 -16
- package/engine/internal/unit.lua +317 -111
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -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 +39 -1
- package/engine/standard/entries/unit-type.lua +39 -1
- package/engine/standard/fields/ability.d.ts +1 -1
- package/engine/standard/fields/ability.lua +1 -1
- package/engine/unit.d.ts +2 -0
- package/engine/unit.lua +11 -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,12 +629,34 @@ 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[103] or 0) - 1
|
|
634
|
+
if counter ~= 0 then
|
|
635
|
+
unit[103] = counter
|
|
636
|
+
return
|
|
637
|
+
end
|
|
638
|
+
unit[103] = nil
|
|
639
|
+
local healthBonus = unit[104]
|
|
640
|
+
if healthBonus ~= nil then
|
|
641
|
+
unit[104] = nil
|
|
642
|
+
local handle = unit.handle
|
|
643
|
+
BlzSetUnitMaxHP(
|
|
644
|
+
handle,
|
|
645
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
646
|
+
)
|
|
647
|
+
end
|
|
648
|
+
end
|
|
649
|
+
local nextSyncId = 1
|
|
650
|
+
local unitBySyncId = setmetatable({}, {__mode = "k"})
|
|
523
651
|
____exports.Unit = __TS__Class()
|
|
524
652
|
local Unit = ____exports.Unit
|
|
525
653
|
Unit.name = "Unit"
|
|
526
654
|
__TS__ClassExtends(Unit, Handle)
|
|
527
655
|
function Unit.prototype.____constructor(self, handle)
|
|
528
656
|
Handle.prototype.____constructor(self, handle)
|
|
657
|
+
local ____nextSyncId_0 = nextSyncId
|
|
658
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
659
|
+
self.syncId = ____nextSyncId_0
|
|
529
660
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
530
661
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
531
662
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -538,6 +669,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
538
669
|
fourCC("Amrf")
|
|
539
670
|
))
|
|
540
671
|
end
|
|
672
|
+
unitBySyncId[self.syncId] = self
|
|
541
673
|
local ____ = self.abilities
|
|
542
674
|
end
|
|
543
675
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -623,8 +755,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
623
755
|
end}
|
|
624
756
|
end
|
|
625
757
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
626
|
-
local
|
|
627
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
758
|
+
local ____combatClassification_1 = combatClassification
|
|
759
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_1 == ____combatClassification_1
|
|
628
760
|
end
|
|
629
761
|
function Unit.prototype.addClassification(self, classification)
|
|
630
762
|
return unitAddType(self.handle, classification)
|
|
@@ -642,13 +774,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
642
774
|
return isUnitInvisible(self.handle, player.handle)
|
|
643
775
|
end
|
|
644
776
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
645
|
-
local
|
|
777
|
+
local ____temp_2
|
|
646
778
|
if type(x) == "number" then
|
|
647
|
-
|
|
779
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
648
780
|
else
|
|
649
|
-
|
|
781
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
650
782
|
end
|
|
651
|
-
return
|
|
783
|
+
return ____temp_2
|
|
652
784
|
end
|
|
653
785
|
function Unit.prototype.isAllyOf(self, unit)
|
|
654
786
|
return isUnitAlly(
|
|
@@ -674,6 +806,10 @@ end
|
|
|
674
806
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
807
|
queueUnitAnimation(self.handle, animation)
|
|
676
808
|
end
|
|
809
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
810
|
+
self[103] = (self[103] or 0) + 1
|
|
811
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
812
|
+
end
|
|
677
813
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
814
|
setUnitPosition(self.handle, x, y)
|
|
679
815
|
end
|
|
@@ -687,8 +823,15 @@ end
|
|
|
687
823
|
function Unit.prototype.kill(self)
|
|
688
824
|
killUnit(self.handle)
|
|
689
825
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
826
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
827
|
+
local ____ReviveHero_5 = ReviveHero
|
|
828
|
+
local ____array_4 = __TS__SparseArrayNew(self.handle, x, y)
|
|
829
|
+
local ____doEffect_3 = doEffect
|
|
830
|
+
if ____doEffect_3 == nil then
|
|
831
|
+
____doEffect_3 = false
|
|
832
|
+
end
|
|
833
|
+
__TS__SparseArrayPush(____array_4, ____doEffect_3)
|
|
834
|
+
____ReviveHero_5(__TS__SparseArraySpread(____array_4))
|
|
692
835
|
end
|
|
693
836
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
837
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -728,7 +871,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
871
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
872
|
end
|
|
730
873
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
874
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
875
|
end
|
|
733
876
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
877
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -784,6 +927,9 @@ end
|
|
|
784
927
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
928
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
929
|
end
|
|
930
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
931
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
932
|
+
end
|
|
787
933
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
934
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
935
|
end
|
|
@@ -855,18 +1001,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
855
1001
|
self:decrementStunCounter()
|
|
856
1002
|
end
|
|
857
1003
|
function Unit.prototype.incrementStunCounter(self)
|
|
858
|
-
local stunCounter = self[
|
|
859
|
-
if not self[
|
|
1004
|
+
local stunCounter = self[102] or 0
|
|
1005
|
+
if not self[101] or stunCounter >= 0 then
|
|
860
1006
|
BlzPauseUnitEx(self.handle, true)
|
|
861
1007
|
end
|
|
862
|
-
self[
|
|
1008
|
+
self[102] = stunCounter + 1
|
|
863
1009
|
end
|
|
864
1010
|
function Unit.prototype.decrementStunCounter(self)
|
|
865
|
-
local stunCounter = self[
|
|
866
|
-
if not self[
|
|
1011
|
+
local stunCounter = self[102] or 0
|
|
1012
|
+
if not self[101] or stunCounter >= 1 then
|
|
867
1013
|
BlzPauseUnitEx(self.handle, false)
|
|
868
1014
|
end
|
|
869
|
-
self[
|
|
1015
|
+
self[102] = stunCounter - 1
|
|
870
1016
|
end
|
|
871
1017
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
872
1018
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -968,8 +1114,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
968
1114
|
)
|
|
969
1115
|
return targetCollection
|
|
970
1116
|
end
|
|
971
|
-
function Unit.getSelectionOf(self, player)
|
|
972
|
-
|
|
1117
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1118
|
+
if target == nil then
|
|
1119
|
+
target = {}
|
|
1120
|
+
end
|
|
1121
|
+
targetCollection = target
|
|
973
1122
|
targetCollectionNextIndex = 1
|
|
974
1123
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
975
1124
|
return targetCollection
|
|
@@ -991,6 +1140,9 @@ end
|
|
|
991
1140
|
function Unit.prototype.__tostring(self)
|
|
992
1141
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
993
1142
|
end
|
|
1143
|
+
function Unit.getBySyncId(self, syncId)
|
|
1144
|
+
return unitBySyncId[syncId]
|
|
1145
|
+
end
|
|
994
1146
|
__TS__SetDescriptor(
|
|
995
1147
|
Unit.prototype,
|
|
996
1148
|
"_deltas",
|
|
@@ -1071,12 +1223,27 @@ __TS__SetDescriptor(
|
|
|
1071
1223
|
Unit.prototype,
|
|
1072
1224
|
"weapons",
|
|
1073
1225
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1226
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1227
|
+
end},
|
|
1228
|
+
true
|
|
1229
|
+
)
|
|
1230
|
+
__TS__SetDescriptor(
|
|
1231
|
+
Unit.prototype,
|
|
1232
|
+
"firstWeapon",
|
|
1233
|
+
{get = function(self)
|
|
1234
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1235
|
+
rawset(self, "firstWeapon", weapon)
|
|
1236
|
+
return weapon
|
|
1237
|
+
end},
|
|
1238
|
+
true
|
|
1239
|
+
)
|
|
1240
|
+
__TS__SetDescriptor(
|
|
1241
|
+
Unit.prototype,
|
|
1242
|
+
"secondWeapon",
|
|
1243
|
+
{get = function(self)
|
|
1244
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1245
|
+
rawset(self, "secondWeapon", weapon)
|
|
1246
|
+
return weapon
|
|
1080
1247
|
end},
|
|
1081
1248
|
true
|
|
1082
1249
|
)
|
|
@@ -1233,17 +1400,17 @@ __TS__SetDescriptor(
|
|
|
1233
1400
|
"isTeamGlowVisible",
|
|
1234
1401
|
{
|
|
1235
1402
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1403
|
+
return not self[106]
|
|
1237
1404
|
end,
|
|
1238
1405
|
set = function(self, isTeamGlowVisible)
|
|
1239
1406
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1407
|
+
local ____temp_6
|
|
1241
1408
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1409
|
+
____temp_6 = true
|
|
1243
1410
|
else
|
|
1244
|
-
|
|
1411
|
+
____temp_6 = nil
|
|
1245
1412
|
end
|
|
1246
|
-
self[
|
|
1413
|
+
self[106] = ____temp_6
|
|
1247
1414
|
end
|
|
1248
1415
|
},
|
|
1249
1416
|
true
|
|
@@ -1253,7 +1420,7 @@ __TS__SetDescriptor(
|
|
|
1253
1420
|
"color",
|
|
1254
1421
|
{set = function(self, color)
|
|
1255
1422
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1423
|
+
if self[106] then
|
|
1257
1424
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1425
|
end
|
|
1259
1426
|
end},
|
|
@@ -1277,10 +1444,14 @@ __TS__SetDescriptor(
|
|
|
1277
1444
|
"maxHealth",
|
|
1278
1445
|
{
|
|
1279
1446
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1447
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1281
1448
|
end,
|
|
1282
1449
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1450
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1451
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1452
|
+
maxHealth = 1
|
|
1453
|
+
end
|
|
1454
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1284
1455
|
end
|
|
1285
1456
|
},
|
|
1286
1457
|
true
|
|
@@ -1322,10 +1493,10 @@ __TS__SetDescriptor(
|
|
|
1322
1493
|
"health",
|
|
1323
1494
|
{
|
|
1324
1495
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1496
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1326
1497
|
end,
|
|
1327
1498
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1499
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1329
1500
|
end
|
|
1330
1501
|
},
|
|
1331
1502
|
true
|
|
@@ -1536,17 +1707,17 @@ __TS__SetDescriptor(
|
|
|
1536
1707
|
set = function(self, isPaused)
|
|
1537
1708
|
local handle = self.handle
|
|
1538
1709
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
for _ = self[
|
|
1710
|
+
self[101] = true
|
|
1711
|
+
for _ = self[102] or 0, -1 do
|
|
1541
1712
|
BlzPauseUnitEx(handle, true)
|
|
1542
1713
|
end
|
|
1543
1714
|
PauseUnit(handle, true)
|
|
1544
1715
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1716
|
PauseUnit(handle, false)
|
|
1546
|
-
for _ = self[
|
|
1717
|
+
for _ = self[102] or 0, -1 do
|
|
1547
1718
|
BlzPauseUnitEx(handle, false)
|
|
1548
1719
|
end
|
|
1549
|
-
self[
|
|
1720
|
+
self[101] = nil
|
|
1550
1721
|
end
|
|
1551
1722
|
end
|
|
1552
1723
|
},
|
|
@@ -1903,7 +2074,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2074
|
Unit.onResurrect = __TS__New(
|
|
1904
2075
|
InitializingEvent,
|
|
1905
2076
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2077
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2078
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2079
|
dead[unit] = true
|
|
@@ -1919,10 +2089,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2089
|
Unit.morphEvent = __TS__New(
|
|
1920
2090
|
InitializingEvent,
|
|
1921
2091
|
function(event)
|
|
2092
|
+
local function ifNotLeft(unit)
|
|
2093
|
+
local handle = unit.handle
|
|
2094
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2095
|
+
invoke(event, unit)
|
|
2096
|
+
end
|
|
2097
|
+
end
|
|
1922
2098
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2099
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2100
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2101
|
end
|
|
1927
2102
|
end)
|
|
1928
2103
|
end
|
|
@@ -1960,27 +2135,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2135
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2136
|
InitializingEvent,
|
|
1962
2137
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2138
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2139
|
+
local ____GetSpellTargetUnit_result_9
|
|
1966
2140
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2141
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2142
|
else
|
|
1969
|
-
local
|
|
2143
|
+
local ____GetSpellTargetItem_result_8
|
|
1970
2144
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2145
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1972
2146
|
else
|
|
1973
|
-
local
|
|
2147
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1974
2148
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2149
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2150
|
else
|
|
1977
|
-
|
|
2151
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
1978
2152
|
end
|
|
1979
|
-
|
|
2153
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
1980
2154
|
end
|
|
1981
|
-
|
|
2155
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
1982
2156
|
end
|
|
1983
|
-
local target =
|
|
2157
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
1984
2158
|
if target then
|
|
1985
2159
|
invoke(event, unit, id, target)
|
|
1986
2160
|
end
|
|
@@ -2177,7 +2351,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2351
|
)
|
|
2178
2352
|
Unit.onDamaging = (function()
|
|
2179
2353
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2354
|
local trigger = CreateTrigger()
|
|
2182
2355
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2356
|
TriggerAddCondition(
|
|
@@ -2276,7 +2449,6 @@ end)()
|
|
|
2276
2449
|
Unit.onDamage = __TS__New(
|
|
2277
2450
|
InitializingEvent,
|
|
2278
2451
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2452
|
local trigger = CreateTrigger()
|
|
2281
2453
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2454
|
TriggerAddCondition(
|
|
@@ -2292,6 +2464,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2464
|
damageType = BlzGetEventDamageType(),
|
|
2293
2465
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2466
|
isAttack = BlzGetEventIsAttack(),
|
|
2467
|
+
originalAmount = GetEventDamage(),
|
|
2295
2468
|
preventDeath = damageEventPreventDeath
|
|
2296
2469
|
}
|
|
2297
2470
|
local evData = setmetatable(
|
|
@@ -2308,7 +2481,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2481
|
invoke(event, source, target, evData)
|
|
2309
2482
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2483
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2484
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2312
2485
|
BlzSetUnitMaxHP(
|
|
2313
2486
|
target.handle,
|
|
2314
2487
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2495,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2495
|
evData[0],
|
|
2323
2496
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2497
|
)
|
|
2325
|
-
target[
|
|
2498
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2326
2499
|
SetWidgetLife(
|
|
2327
2500
|
target.handle,
|
|
2328
2501
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,7 +2515,7 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2515
|
DestroyTrigger(trigger)
|
|
2343
2516
|
end
|
|
2344
2517
|
)
|
|
2345
|
-
Unit.
|
|
2518
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2519
|
____exports.UnitTriggerEvent,
|
|
2347
2520
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2521
|
function()
|
|
@@ -2353,7 +2526,7 @@ Unit.onItemDrop = __TS__New(
|
|
|
2353
2526
|
return IgnoreEvent
|
|
2354
2527
|
end
|
|
2355
2528
|
)
|
|
2356
|
-
Unit.
|
|
2529
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2530
|
____exports.UnitTriggerEvent,
|
|
2358
2531
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2532
|
function()
|
|
@@ -2364,10 +2537,43 @@ Unit.onItemPickup = __TS__New(
|
|
|
2364
2537
|
return IgnoreEvent
|
|
2365
2538
|
end
|
|
2366
2539
|
)
|
|
2367
|
-
Unit.
|
|
2540
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2541
|
____exports.UnitTriggerEvent,
|
|
2369
2542
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function() return ____exports.Unit:of(
|
|
2543
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2544
|
+
)
|
|
2545
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2546
|
+
____exports.UnitTriggerEvent,
|
|
2547
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2548
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2549
|
+
)
|
|
2550
|
+
__TS__ObjectDefineProperty(
|
|
2551
|
+
Unit,
|
|
2552
|
+
"itemMovedEvent",
|
|
2553
|
+
{get = function(self)
|
|
2554
|
+
local event = __TS__New(Event)
|
|
2555
|
+
do
|
|
2556
|
+
local order = orderId("moveslot1")
|
|
2557
|
+
while order <= orderId("moveslot5") do
|
|
2558
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2559
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2560
|
+
if slotFrom ~= nil then
|
|
2561
|
+
local slotTo = order - orderId("moveslot1")
|
|
2562
|
+
invoke(
|
|
2563
|
+
event,
|
|
2564
|
+
unit,
|
|
2565
|
+
item,
|
|
2566
|
+
slotFrom,
|
|
2567
|
+
slotTo
|
|
2568
|
+
)
|
|
2569
|
+
end
|
|
2570
|
+
end)
|
|
2571
|
+
order = order + 1
|
|
2572
|
+
end
|
|
2573
|
+
end
|
|
2574
|
+
rawset(self, "itemMovedEvent", event)
|
|
2575
|
+
return event
|
|
2576
|
+
end}
|
|
2371
2577
|
)
|
|
2372
2578
|
__TS__ObjectDefineProperty(
|
|
2373
2579
|
Unit,
|