warscript 0.0.1-dev.ea69747 → 0.0.1-dev.ebee5b2
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 +4 -1
- package/core/types/frame.lua +22 -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/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-buff.d.ts +3 -5
- 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 +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 -1
- package/engine/internal/item+owner.lua +2 -2
- 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 +9 -8
- package/engine/internal/unit/bonus.lua +6 -1
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +1 -1
- package/engine/internal/unit.d.ts +59 -13
- package/engine/internal/unit.lua +306 -93
- 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 +25 -6
- package/engine/object-field/ability.lua +56 -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/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/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 +31 -9
- package/utility/linked-set.lua +21 -2
- package/utility/lua-maps.d.ts +1 -2
- package/utility/lua-sets.d.ts +1 -2
- package/utility/types.d.ts +3 -2
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
package/engine/internal/unit.lua
CHANGED
|
@@ -5,13 +5,17 @@ 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
|
|
14
17
|
local ____exports = {}
|
|
18
|
+
local unitInventorySize, unitItemInSlot, unitDropItemSlot, unitRemoveItemFromSlot, unitAddItem, isItemPowerup, setItemBooleanField
|
|
15
19
|
local ____handle = require("core.types.handle")
|
|
16
20
|
local Handle = ____handle.Handle
|
|
17
21
|
local ____player = require("core.types.player")
|
|
@@ -92,6 +96,10 @@ local isUnitInRangeXY = IsUnitInRangeXY
|
|
|
92
96
|
local isUnitInRange = IsUnitInRange
|
|
93
97
|
local setResourceAmount = SetResourceAmount
|
|
94
98
|
local getResourceAmount = GetResourceAmount
|
|
99
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
100
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
101
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
102
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
103
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
104
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
105
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -275,16 +283,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
283
|
end
|
|
276
284
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
285
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
286
|
return setmetatable(
|
|
280
|
-
|
|
287
|
+
{},
|
|
281
288
|
{
|
|
282
289
|
__index = function(self, id)
|
|
283
290
|
if type(id) ~= "number" then
|
|
284
291
|
return event[id]
|
|
285
292
|
end
|
|
286
293
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
294
|
event:addListener(function(...)
|
|
289
295
|
local id = idGetter(...)
|
|
290
296
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +328,6 @@ local function dispatchAbility(event)
|
|
|
322
328
|
return event[id]
|
|
323
329
|
end
|
|
324
330
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
331
|
event:addListener(function(unit, ability, ...)
|
|
327
332
|
local dispatched = rawget(self, ability.typeId)
|
|
328
333
|
if dispatched ~= nil then
|
|
@@ -387,53 +392,196 @@ local getters = {
|
|
|
387
392
|
return BlzGetUnitArmor(unit)
|
|
388
393
|
end
|
|
389
394
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
projectileArt = function(self, handle, index)
|
|
401
|
-
return BlzGetUnitWeaponStringField(handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, index)
|
|
402
|
-
end,
|
|
403
|
-
projectileSpeed = function(self, handle, index)
|
|
404
|
-
return BlzGetUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, index)
|
|
405
|
-
end,
|
|
406
|
-
attackPoint = function(self, handle, index)
|
|
407
|
-
return BlzGetUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, index)
|
|
408
|
-
end
|
|
409
|
-
}
|
|
410
|
-
local weaponSetters = {
|
|
411
|
-
cooldown = function(self, handle, index, value)
|
|
412
|
-
assert(BlzSetUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, index, value))
|
|
413
|
-
end,
|
|
414
|
-
projectileArc = function(self, handle, index, value)
|
|
415
|
-
assert(BlzSetUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, index, value))
|
|
416
|
-
end,
|
|
417
|
-
projectileArt = function(self, handle, index, value)
|
|
418
|
-
assert(BlzSetUnitWeaponStringField(handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, index, value))
|
|
419
|
-
end,
|
|
420
|
-
projectileSpeed = function(self, handle, index, value)
|
|
421
|
-
assert(BlzSetUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, index, value))
|
|
422
|
-
end,
|
|
423
|
-
attackPoint = function(self, handle, index, value)
|
|
424
|
-
assert(BlzSetUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, index, value))
|
|
395
|
+
____exports.UnitItems = __TS__Class()
|
|
396
|
+
local UnitItems = ____exports.UnitItems
|
|
397
|
+
UnitItems.name = "UnitItems"
|
|
398
|
+
function UnitItems.prototype.____constructor(self, handle)
|
|
399
|
+
self.handle = handle
|
|
400
|
+
end
|
|
401
|
+
function UnitItems.prototype.__newindex(self, slot, item)
|
|
402
|
+
local handle = self.handle
|
|
403
|
+
if slot < 0 or slot >= unitInventorySize(handle) then
|
|
404
|
+
return
|
|
425
405
|
end
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
406
|
+
unitRemoveItemFromSlot(handle, slot)
|
|
407
|
+
if item ~= nil then
|
|
408
|
+
local itemHandle = item.handle
|
|
409
|
+
local isPowerup = isItemPowerup(itemHandle)
|
|
410
|
+
if isPowerup then
|
|
411
|
+
setItemBooleanField(itemHandle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, false)
|
|
412
|
+
end
|
|
413
|
+
unitAddItem(handle, itemHandle)
|
|
414
|
+
unitDropItemSlot(handle, itemHandle, slot)
|
|
415
|
+
if isPowerup then
|
|
416
|
+
setItemBooleanField(itemHandle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, true)
|
|
417
|
+
end
|
|
433
418
|
end
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
419
|
+
end
|
|
420
|
+
function UnitItems.prototype.__index(self, slot)
|
|
421
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
422
|
+
end
|
|
423
|
+
function UnitItems.prototype.__len(self)
|
|
424
|
+
return unitInventorySize(self.handle)
|
|
425
|
+
end
|
|
426
|
+
____exports.UnitWeapon = __TS__Class()
|
|
427
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
428
|
+
UnitWeapon.name = "UnitWeapon"
|
|
429
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
430
|
+
self.unit = unit
|
|
431
|
+
self.index = index
|
|
432
|
+
end
|
|
433
|
+
__TS__SetDescriptor(
|
|
434
|
+
UnitWeapon.prototype,
|
|
435
|
+
"cooldown",
|
|
436
|
+
{
|
|
437
|
+
get = function(self)
|
|
438
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
439
|
+
end,
|
|
440
|
+
set = function(self, cooldown)
|
|
441
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
442
|
+
end
|
|
443
|
+
},
|
|
444
|
+
true
|
|
445
|
+
)
|
|
446
|
+
__TS__SetDescriptor(
|
|
447
|
+
UnitWeapon.prototype,
|
|
448
|
+
"damage",
|
|
449
|
+
{
|
|
450
|
+
get = function(self)
|
|
451
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
452
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
453
|
+
return {minimumDamage, maximumDamage}
|
|
454
|
+
end,
|
|
455
|
+
set = function(self, ____bindingPattern0)
|
|
456
|
+
local maximumDamage
|
|
457
|
+
local minimumDamage
|
|
458
|
+
minimumDamage = ____bindingPattern0[1]
|
|
459
|
+
maximumDamage = ____bindingPattern0[2]
|
|
460
|
+
self.damageBase = minimumDamage - 1
|
|
461
|
+
self.damageDiceCount = 1
|
|
462
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
463
|
+
end
|
|
464
|
+
},
|
|
465
|
+
true
|
|
466
|
+
)
|
|
467
|
+
__TS__SetDescriptor(
|
|
468
|
+
UnitWeapon.prototype,
|
|
469
|
+
"damageBase",
|
|
470
|
+
{
|
|
471
|
+
get = function(self)
|
|
472
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
473
|
+
end,
|
|
474
|
+
set = function(self, damageBase)
|
|
475
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
476
|
+
end
|
|
477
|
+
},
|
|
478
|
+
true
|
|
479
|
+
)
|
|
480
|
+
__TS__SetDescriptor(
|
|
481
|
+
UnitWeapon.prototype,
|
|
482
|
+
"damageDiceCount",
|
|
483
|
+
{
|
|
484
|
+
get = function(self)
|
|
485
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
486
|
+
end,
|
|
487
|
+
set = function(self, damageDiceCount)
|
|
488
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
489
|
+
end
|
|
490
|
+
},
|
|
491
|
+
true
|
|
492
|
+
)
|
|
493
|
+
__TS__SetDescriptor(
|
|
494
|
+
UnitWeapon.prototype,
|
|
495
|
+
"damageDiceSideCount",
|
|
496
|
+
{
|
|
497
|
+
get = function(self)
|
|
498
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
499
|
+
end,
|
|
500
|
+
set = function(self, damageDiceSideCount)
|
|
501
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
502
|
+
end
|
|
503
|
+
},
|
|
504
|
+
true
|
|
505
|
+
)
|
|
506
|
+
__TS__SetDescriptor(
|
|
507
|
+
UnitWeapon.prototype,
|
|
508
|
+
"range",
|
|
509
|
+
{
|
|
510
|
+
get = function(self)
|
|
511
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
512
|
+
end,
|
|
513
|
+
set = function(self, range)
|
|
514
|
+
local handle = self.unit.handle
|
|
515
|
+
local index = self.index
|
|
516
|
+
setUnitWeaponRealField(
|
|
517
|
+
handle,
|
|
518
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
519
|
+
index + 1,
|
|
520
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
521
|
+
)
|
|
522
|
+
end
|
|
523
|
+
},
|
|
524
|
+
true
|
|
525
|
+
)
|
|
526
|
+
__TS__SetDescriptor(
|
|
527
|
+
UnitWeapon.prototype,
|
|
528
|
+
"impactDelay",
|
|
529
|
+
{
|
|
530
|
+
get = function(self)
|
|
531
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
532
|
+
end,
|
|
533
|
+
set = function(self, impactDelay)
|
|
534
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
535
|
+
end
|
|
536
|
+
},
|
|
537
|
+
true
|
|
538
|
+
)
|
|
539
|
+
__TS__SetDescriptor(
|
|
540
|
+
UnitWeapon.prototype,
|
|
541
|
+
"missileArc",
|
|
542
|
+
{
|
|
543
|
+
get = function(self)
|
|
544
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
545
|
+
end,
|
|
546
|
+
set = function(self, missileArc)
|
|
547
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
548
|
+
end
|
|
549
|
+
},
|
|
550
|
+
true
|
|
551
|
+
)
|
|
552
|
+
__TS__SetDescriptor(
|
|
553
|
+
UnitWeapon.prototype,
|
|
554
|
+
"missileModelPath",
|
|
555
|
+
{
|
|
556
|
+
get = function(self)
|
|
557
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
558
|
+
end,
|
|
559
|
+
set = function(self, missileModelPath)
|
|
560
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
561
|
+
end
|
|
562
|
+
},
|
|
563
|
+
true
|
|
564
|
+
)
|
|
565
|
+
__TS__SetDescriptor(
|
|
566
|
+
UnitWeapon.prototype,
|
|
567
|
+
"missileSpeed",
|
|
568
|
+
{
|
|
569
|
+
get = function(self)
|
|
570
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
571
|
+
end,
|
|
572
|
+
set = function(self, missileSpeed)
|
|
573
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
574
|
+
end
|
|
575
|
+
},
|
|
576
|
+
true
|
|
577
|
+
)
|
|
578
|
+
unitInventorySize = UnitInventorySize
|
|
579
|
+
unitItemInSlot = UnitItemInSlot
|
|
580
|
+
unitDropItemSlot = UnitDropItemSlot
|
|
581
|
+
unitRemoveItemFromSlot = UnitRemoveItemFromSlot
|
|
582
|
+
unitAddItem = UnitAddItem
|
|
583
|
+
isItemPowerup = IsItemPowerup
|
|
584
|
+
setItemBooleanField = BlzSetItemBooleanField
|
|
437
585
|
local getItemAbility = BlzGetItemAbility
|
|
438
586
|
local getUnitAbility = BlzGetUnitAbility
|
|
439
587
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -442,8 +590,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
590
|
local unitAddAbility = UnitAddAbility
|
|
443
591
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
592
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
593
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
594
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
595
|
if ability == nil then
|
|
@@ -520,6 +666,23 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
666
|
ShowUnit(dummy, false)
|
|
521
667
|
dummies[player] = dummy
|
|
522
668
|
end
|
|
669
|
+
local function delayHealthChecksCallback(unit)
|
|
670
|
+
local counter = (unit[102] or 0) - 1
|
|
671
|
+
if counter ~= 0 then
|
|
672
|
+
unit[102] = counter
|
|
673
|
+
return
|
|
674
|
+
end
|
|
675
|
+
unit[102] = nil
|
|
676
|
+
local healthBonus = unit[103]
|
|
677
|
+
if healthBonus ~= nil then
|
|
678
|
+
unit[103] = nil
|
|
679
|
+
local handle = unit.handle
|
|
680
|
+
BlzSetUnitMaxHP(
|
|
681
|
+
handle,
|
|
682
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
683
|
+
)
|
|
684
|
+
end
|
|
685
|
+
end
|
|
523
686
|
____exports.Unit = __TS__Class()
|
|
524
687
|
local Unit = ____exports.Unit
|
|
525
688
|
Unit.name = "Unit"
|
|
@@ -674,6 +837,10 @@ end
|
|
|
674
837
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
838
|
queueUnitAnimation(self.handle, animation)
|
|
676
839
|
end
|
|
840
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
841
|
+
self[102] = (self[102] or 0) + 1
|
|
842
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
843
|
+
end
|
|
677
844
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
845
|
setUnitPosition(self.handle, x, y)
|
|
679
846
|
end
|
|
@@ -687,8 +854,15 @@ end
|
|
|
687
854
|
function Unit.prototype.kill(self)
|
|
688
855
|
killUnit(self.handle)
|
|
689
856
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
857
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
858
|
+
local ____ReviveHero_4 = ReviveHero
|
|
859
|
+
local ____array_3 = __TS__SparseArrayNew(self.handle, x, y)
|
|
860
|
+
local ____doEffect_2 = doEffect
|
|
861
|
+
if ____doEffect_2 == nil then
|
|
862
|
+
____doEffect_2 = false
|
|
863
|
+
end
|
|
864
|
+
__TS__SparseArrayPush(____array_3, ____doEffect_2)
|
|
865
|
+
____ReviveHero_4(__TS__SparseArraySpread(____array_3))
|
|
692
866
|
end
|
|
693
867
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
868
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -728,7 +902,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
902
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
903
|
end
|
|
730
904
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
905
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
906
|
end
|
|
733
907
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
908
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -784,6 +958,9 @@ end
|
|
|
784
958
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
959
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
960
|
end
|
|
961
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
962
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
963
|
+
end
|
|
787
964
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
965
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
966
|
end
|
|
@@ -1071,12 +1248,27 @@ __TS__SetDescriptor(
|
|
|
1071
1248
|
Unit.prototype,
|
|
1072
1249
|
"weapons",
|
|
1073
1250
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1251
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1252
|
+
end},
|
|
1253
|
+
true
|
|
1254
|
+
)
|
|
1255
|
+
__TS__SetDescriptor(
|
|
1256
|
+
Unit.prototype,
|
|
1257
|
+
"firstWeapon",
|
|
1258
|
+
{get = function(self)
|
|
1259
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1260
|
+
rawset(self, "firstWeapon", weapon)
|
|
1261
|
+
return weapon
|
|
1262
|
+
end},
|
|
1263
|
+
true
|
|
1264
|
+
)
|
|
1265
|
+
__TS__SetDescriptor(
|
|
1266
|
+
Unit.prototype,
|
|
1267
|
+
"secondWeapon",
|
|
1268
|
+
{get = function(self)
|
|
1269
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1270
|
+
rawset(self, "secondWeapon", weapon)
|
|
1271
|
+
return weapon
|
|
1080
1272
|
end},
|
|
1081
1273
|
true
|
|
1082
1274
|
)
|
|
@@ -1233,17 +1425,17 @@ __TS__SetDescriptor(
|
|
|
1233
1425
|
"isTeamGlowVisible",
|
|
1234
1426
|
{
|
|
1235
1427
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1428
|
+
return not self[105]
|
|
1237
1429
|
end,
|
|
1238
1430
|
set = function(self, isTeamGlowVisible)
|
|
1239
1431
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1432
|
+
local ____temp_5
|
|
1241
1433
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1434
|
+
____temp_5 = true
|
|
1243
1435
|
else
|
|
1244
|
-
|
|
1436
|
+
____temp_5 = nil
|
|
1245
1437
|
end
|
|
1246
|
-
self[
|
|
1438
|
+
self[105] = ____temp_5
|
|
1247
1439
|
end
|
|
1248
1440
|
},
|
|
1249
1441
|
true
|
|
@@ -1253,7 +1445,7 @@ __TS__SetDescriptor(
|
|
|
1253
1445
|
"color",
|
|
1254
1446
|
{set = function(self, color)
|
|
1255
1447
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1448
|
+
if self[105] then
|
|
1257
1449
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1450
|
end
|
|
1259
1451
|
end},
|
|
@@ -1277,10 +1469,14 @@ __TS__SetDescriptor(
|
|
|
1277
1469
|
"maxHealth",
|
|
1278
1470
|
{
|
|
1279
1471
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1472
|
+
return BlzGetUnitMaxHP(self.handle) - (self[103] or 0) - (self[104] or 0)
|
|
1281
1473
|
end,
|
|
1282
1474
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1475
|
+
if maxHealth < 1 and self[102] ~= nil then
|
|
1476
|
+
self[103] = (self[103] or 0) + (1 - maxHealth)
|
|
1477
|
+
maxHealth = 1
|
|
1478
|
+
end
|
|
1479
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[104] or 0))
|
|
1284
1480
|
end
|
|
1285
1481
|
},
|
|
1286
1482
|
true
|
|
@@ -1322,10 +1518,10 @@ __TS__SetDescriptor(
|
|
|
1322
1518
|
"health",
|
|
1323
1519
|
{
|
|
1324
1520
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1521
|
+
return GetWidgetLife(self.handle) - (self[104] or 0)
|
|
1326
1522
|
end,
|
|
1327
1523
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1524
|
+
SetWidgetLife(self.handle, health + (self[104] or 0))
|
|
1329
1525
|
end
|
|
1330
1526
|
},
|
|
1331
1527
|
true
|
|
@@ -1657,6 +1853,16 @@ __TS__SetDescriptor(
|
|
|
1657
1853
|
end},
|
|
1658
1854
|
true
|
|
1659
1855
|
)
|
|
1856
|
+
__TS__SetDescriptor(
|
|
1857
|
+
Unit.prototype,
|
|
1858
|
+
"items",
|
|
1859
|
+
{get = function(self)
|
|
1860
|
+
local items = __TS__New(____exports.UnitItems, self.handle)
|
|
1861
|
+
rawset(self, "items", items)
|
|
1862
|
+
return items
|
|
1863
|
+
end},
|
|
1864
|
+
true
|
|
1865
|
+
)
|
|
1660
1866
|
__TS__SetDescriptor(
|
|
1661
1867
|
Unit.prototype,
|
|
1662
1868
|
"buffIds",
|
|
@@ -1903,7 +2109,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2109
|
Unit.onResurrect = __TS__New(
|
|
1904
2110
|
InitializingEvent,
|
|
1905
2111
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2112
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2113
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2114
|
dead[unit] = true
|
|
@@ -1919,10 +2124,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2124
|
Unit.morphEvent = __TS__New(
|
|
1920
2125
|
InitializingEvent,
|
|
1921
2126
|
function(event)
|
|
2127
|
+
local function ifNotLeft(unit)
|
|
2128
|
+
local handle = unit.handle
|
|
2129
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2130
|
+
invoke(event, unit)
|
|
2131
|
+
end
|
|
2132
|
+
end
|
|
1922
2133
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2134
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2135
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2136
|
end
|
|
1927
2137
|
end)
|
|
1928
2138
|
end
|
|
@@ -1960,27 +2170,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2170
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2171
|
InitializingEvent,
|
|
1962
2172
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2173
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2174
|
+
local ____GetSpellTargetUnit_result_8
|
|
1966
2175
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2176
|
+
____GetSpellTargetUnit_result_8 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2177
|
else
|
|
1969
|
-
local
|
|
2178
|
+
local ____GetSpellTargetItem_result_7
|
|
1970
2179
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2180
|
+
____GetSpellTargetItem_result_7 = Item:of(GetSpellTargetItem())
|
|
1972
2181
|
else
|
|
1973
|
-
local
|
|
2182
|
+
local ____GetSpellTargetDestructable_result_6
|
|
1974
2183
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2184
|
+
____GetSpellTargetDestructable_result_6 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2185
|
else
|
|
1977
|
-
|
|
2186
|
+
____GetSpellTargetDestructable_result_6 = nil
|
|
1978
2187
|
end
|
|
1979
|
-
|
|
2188
|
+
____GetSpellTargetItem_result_7 = ____GetSpellTargetDestructable_result_6
|
|
1980
2189
|
end
|
|
1981
|
-
|
|
2190
|
+
____GetSpellTargetUnit_result_8 = ____GetSpellTargetItem_result_7
|
|
1982
2191
|
end
|
|
1983
|
-
local target =
|
|
2192
|
+
local target = ____GetSpellTargetUnit_result_8
|
|
1984
2193
|
if target then
|
|
1985
2194
|
invoke(event, unit, id, target)
|
|
1986
2195
|
end
|
|
@@ -2177,7 +2386,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2386
|
)
|
|
2178
2387
|
Unit.onDamaging = (function()
|
|
2179
2388
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2389
|
local trigger = CreateTrigger()
|
|
2182
2390
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2391
|
TriggerAddCondition(
|
|
@@ -2276,7 +2484,6 @@ end)()
|
|
|
2276
2484
|
Unit.onDamage = __TS__New(
|
|
2277
2485
|
InitializingEvent,
|
|
2278
2486
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2487
|
local trigger = CreateTrigger()
|
|
2281
2488
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2489
|
TriggerAddCondition(
|
|
@@ -2292,6 +2499,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2499
|
damageType = BlzGetEventDamageType(),
|
|
2293
2500
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2501
|
isAttack = BlzGetEventIsAttack(),
|
|
2502
|
+
originalAmount = GetEventDamage(),
|
|
2295
2503
|
preventDeath = damageEventPreventDeath
|
|
2296
2504
|
}
|
|
2297
2505
|
local evData = setmetatable(
|
|
@@ -2308,7 +2516,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2516
|
invoke(event, source, target, evData)
|
|
2309
2517
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2518
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2519
|
+
target[104] = (target[104] or 0) + bonusHealth
|
|
2312
2520
|
BlzSetUnitMaxHP(
|
|
2313
2521
|
target.handle,
|
|
2314
2522
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2530,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2530
|
evData[0],
|
|
2323
2531
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2532
|
)
|
|
2325
|
-
target[
|
|
2533
|
+
target[104] = (target[104] or 0) - bonusHealth
|
|
2326
2534
|
SetWidgetLife(
|
|
2327
2535
|
target.handle,
|
|
2328
2536
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,7 +2550,7 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2550
|
DestroyTrigger(trigger)
|
|
2343
2551
|
end
|
|
2344
2552
|
)
|
|
2345
|
-
Unit.
|
|
2553
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2554
|
____exports.UnitTriggerEvent,
|
|
2347
2555
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2556
|
function()
|
|
@@ -2353,7 +2561,7 @@ Unit.onItemDrop = __TS__New(
|
|
|
2353
2561
|
return IgnoreEvent
|
|
2354
2562
|
end
|
|
2355
2563
|
)
|
|
2356
|
-
Unit.
|
|
2564
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2565
|
____exports.UnitTriggerEvent,
|
|
2358
2566
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2567
|
function()
|
|
@@ -2364,10 +2572,15 @@ Unit.onItemPickup = __TS__New(
|
|
|
2364
2572
|
return IgnoreEvent
|
|
2365
2573
|
end
|
|
2366
2574
|
)
|
|
2367
|
-
Unit.
|
|
2575
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2576
|
____exports.UnitTriggerEvent,
|
|
2369
2577
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function() return ____exports.Unit:of(
|
|
2578
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2579
|
+
)
|
|
2580
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2581
|
+
____exports.UnitTriggerEvent,
|
|
2582
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2583
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2371
2584
|
)
|
|
2372
2585
|
__TS__ObjectDefineProperty(
|
|
2373
2586
|
Unit,
|
|
@@ -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
|
+
}
|