warscript 0.0.1-dev.ab8c392 → 0.0.1-dev.b34a02b
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 +5 -1
- package/core/types/frame.lua +34 -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 +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 +48 -16
- package/engine/internal/unit.lua +316 -111
- 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 +21 -2
- package/engine/object-data/entry/unit-type.lua +223 -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 +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 -13
- 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 +16 -0
- package/string.lua +5 -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,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 mainSelectedUnitByPlayer
|
|
15
19
|
local ____handle = require("core.types.handle")
|
|
16
20
|
local Handle = ____handle.Handle
|
|
17
21
|
local ____player = require("core.types.player")
|
|
@@ -47,7 +51,11 @@ local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_R
|
|
|
47
51
|
local ____arrays = require("utility.arrays")
|
|
48
52
|
local forEach = ____arrays.forEach
|
|
49
53
|
local ____math = require("math")
|
|
54
|
+
local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
50
55
|
local min = ____math.min
|
|
56
|
+
local MINIMUM_INTEGER = ____math.MINIMUM_INTEGER
|
|
57
|
+
local ____local_2Dclient = require("engine.local-client")
|
|
58
|
+
local LocalClient = ____local_2Dclient.LocalClient
|
|
51
59
|
local match = string.match
|
|
52
60
|
local ____tostring = _G.tostring
|
|
53
61
|
local setUnitAnimation = SetUnitAnimation
|
|
@@ -92,6 +100,10 @@ local isUnitInRangeXY = IsUnitInRangeXY
|
|
|
92
100
|
local isUnitInRange = IsUnitInRange
|
|
93
101
|
local setResourceAmount = SetResourceAmount
|
|
94
102
|
local getResourceAmount = GetResourceAmount
|
|
103
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
104
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
105
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
106
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
109
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -275,16 +287,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
287
|
end
|
|
276
288
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
289
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
290
|
return setmetatable(
|
|
280
|
-
|
|
291
|
+
{},
|
|
281
292
|
{
|
|
282
293
|
__index = function(self, id)
|
|
283
294
|
if type(id) ~= "number" then
|
|
284
295
|
return event[id]
|
|
285
296
|
end
|
|
286
297
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
298
|
event:addListener(function(...)
|
|
289
299
|
local id = idGetter(...)
|
|
290
300
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +332,6 @@ local function dispatchAbility(event)
|
|
|
322
332
|
return event[id]
|
|
323
333
|
end
|
|
324
334
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
335
|
event:addListener(function(unit, ability, ...)
|
|
327
336
|
local dispatched = rawget(self, ability.typeId)
|
|
328
337
|
if dispatched ~= nil then
|
|
@@ -387,51 +396,158 @@ local getters = {
|
|
|
387
396
|
return BlzGetUnitArmor(unit)
|
|
388
397
|
end
|
|
389
398
|
}
|
|
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
|
-
|
|
399
|
+
____exports.UnitWeapon = __TS__Class()
|
|
400
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
401
|
+
UnitWeapon.name = "UnitWeapon"
|
|
402
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
403
|
+
self.unit = unit
|
|
404
|
+
self.index = index
|
|
405
|
+
end
|
|
406
|
+
__TS__SetDescriptor(
|
|
407
|
+
UnitWeapon.prototype,
|
|
408
|
+
"cooldown",
|
|
409
|
+
{
|
|
410
|
+
get = function(self)
|
|
411
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
412
|
+
end,
|
|
413
|
+
set = function(self, cooldown)
|
|
414
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
415
|
+
end
|
|
416
|
+
},
|
|
417
|
+
true
|
|
418
|
+
)
|
|
419
|
+
__TS__SetDescriptor(
|
|
420
|
+
UnitWeapon.prototype,
|
|
421
|
+
"damage",
|
|
422
|
+
{
|
|
423
|
+
get = function(self)
|
|
424
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
425
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
426
|
+
return {minimumDamage, maximumDamage}
|
|
427
|
+
end,
|
|
428
|
+
set = function(self, ____bindingPattern0)
|
|
429
|
+
local maximumDamage
|
|
430
|
+
local minimumDamage
|
|
431
|
+
minimumDamage = ____bindingPattern0[1]
|
|
432
|
+
maximumDamage = ____bindingPattern0[2]
|
|
433
|
+
self.damageBase = minimumDamage - 1
|
|
434
|
+
self.damageDiceCount = 1
|
|
435
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
436
|
+
end
|
|
437
|
+
},
|
|
438
|
+
true
|
|
439
|
+
)
|
|
440
|
+
__TS__SetDescriptor(
|
|
441
|
+
UnitWeapon.prototype,
|
|
442
|
+
"damageBase",
|
|
443
|
+
{
|
|
444
|
+
get = function(self)
|
|
445
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
446
|
+
end,
|
|
447
|
+
set = function(self, damageBase)
|
|
448
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
449
|
+
end
|
|
450
|
+
},
|
|
451
|
+
true
|
|
452
|
+
)
|
|
453
|
+
__TS__SetDescriptor(
|
|
454
|
+
UnitWeapon.prototype,
|
|
455
|
+
"damageDiceCount",
|
|
456
|
+
{
|
|
457
|
+
get = function(self)
|
|
458
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
459
|
+
end,
|
|
460
|
+
set = function(self, damageDiceCount)
|
|
461
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
462
|
+
end
|
|
463
|
+
},
|
|
464
|
+
true
|
|
465
|
+
)
|
|
466
|
+
__TS__SetDescriptor(
|
|
467
|
+
UnitWeapon.prototype,
|
|
468
|
+
"damageDiceSideCount",
|
|
469
|
+
{
|
|
470
|
+
get = function(self)
|
|
471
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
472
|
+
end,
|
|
473
|
+
set = function(self, damageDiceSideCount)
|
|
474
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
475
|
+
end
|
|
476
|
+
},
|
|
477
|
+
true
|
|
478
|
+
)
|
|
479
|
+
__TS__SetDescriptor(
|
|
480
|
+
UnitWeapon.prototype,
|
|
481
|
+
"range",
|
|
482
|
+
{
|
|
483
|
+
get = function(self)
|
|
484
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
485
|
+
end,
|
|
486
|
+
set = function(self, range)
|
|
487
|
+
local handle = self.unit.handle
|
|
488
|
+
local index = self.index
|
|
489
|
+
setUnitWeaponRealField(
|
|
490
|
+
handle,
|
|
491
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
492
|
+
index + 1,
|
|
493
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
494
|
+
)
|
|
495
|
+
end
|
|
496
|
+
},
|
|
497
|
+
true
|
|
498
|
+
)
|
|
499
|
+
__TS__SetDescriptor(
|
|
500
|
+
UnitWeapon.prototype,
|
|
501
|
+
"impactDelay",
|
|
502
|
+
{
|
|
503
|
+
get = function(self)
|
|
504
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
505
|
+
end,
|
|
506
|
+
set = function(self, impactDelay)
|
|
507
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
508
|
+
end
|
|
509
|
+
},
|
|
510
|
+
true
|
|
511
|
+
)
|
|
512
|
+
__TS__SetDescriptor(
|
|
513
|
+
UnitWeapon.prototype,
|
|
514
|
+
"missileArc",
|
|
515
|
+
{
|
|
516
|
+
get = function(self)
|
|
517
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
518
|
+
end,
|
|
519
|
+
set = function(self, missileArc)
|
|
520
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
521
|
+
end
|
|
522
|
+
},
|
|
523
|
+
true
|
|
524
|
+
)
|
|
525
|
+
__TS__SetDescriptor(
|
|
526
|
+
UnitWeapon.prototype,
|
|
527
|
+
"missileModelPath",
|
|
528
|
+
{
|
|
529
|
+
get = function(self)
|
|
530
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
531
|
+
end,
|
|
532
|
+
set = function(self, missileModelPath)
|
|
533
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
534
|
+
end
|
|
535
|
+
},
|
|
536
|
+
true
|
|
537
|
+
)
|
|
538
|
+
__TS__SetDescriptor(
|
|
539
|
+
UnitWeapon.prototype,
|
|
540
|
+
"missileSpeed",
|
|
541
|
+
{
|
|
542
|
+
get = function(self)
|
|
543
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
544
|
+
end,
|
|
545
|
+
set = function(self, missileSpeed)
|
|
546
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
547
|
+
end
|
|
548
|
+
},
|
|
549
|
+
true
|
|
550
|
+
)
|
|
435
551
|
local unitInventorySize = UnitInventorySize
|
|
436
552
|
local unitItemInSlot = UnitItemInSlot
|
|
437
553
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -442,8 +558,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
558
|
local unitAddAbility = UnitAddAbility
|
|
443
559
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
560
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
561
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
562
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
563
|
if ability == nil then
|
|
@@ -520,12 +634,34 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
634
|
ShowUnit(dummy, false)
|
|
521
635
|
dummies[player] = dummy
|
|
522
636
|
end
|
|
637
|
+
local function delayHealthChecksCallback(unit)
|
|
638
|
+
local counter = (unit[103] or 0) - 1
|
|
639
|
+
if counter ~= 0 then
|
|
640
|
+
unit[103] = counter
|
|
641
|
+
return
|
|
642
|
+
end
|
|
643
|
+
unit[103] = nil
|
|
644
|
+
local healthBonus = unit[104]
|
|
645
|
+
if healthBonus ~= nil then
|
|
646
|
+
unit[104] = nil
|
|
647
|
+
local handle = unit.handle
|
|
648
|
+
BlzSetUnitMaxHP(
|
|
649
|
+
handle,
|
|
650
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
651
|
+
)
|
|
652
|
+
end
|
|
653
|
+
end
|
|
654
|
+
local nextSyncId = 1
|
|
655
|
+
local unitBySyncId = setmetatable({}, {__mode = "k"})
|
|
523
656
|
____exports.Unit = __TS__Class()
|
|
524
657
|
local Unit = ____exports.Unit
|
|
525
658
|
Unit.name = "Unit"
|
|
526
659
|
__TS__ClassExtends(Unit, Handle)
|
|
527
660
|
function Unit.prototype.____constructor(self, handle)
|
|
528
661
|
Handle.prototype.____constructor(self, handle)
|
|
662
|
+
local ____nextSyncId_0 = nextSyncId
|
|
663
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
664
|
+
self[100] = ____nextSyncId_0
|
|
529
665
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
530
666
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
531
667
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -538,6 +674,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
538
674
|
fourCC("Amrf")
|
|
539
675
|
))
|
|
540
676
|
end
|
|
677
|
+
unitBySyncId[self[100]] = self
|
|
541
678
|
local ____ = self.abilities
|
|
542
679
|
end
|
|
543
680
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -623,8 +760,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
623
760
|
end}
|
|
624
761
|
end
|
|
625
762
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
626
|
-
local
|
|
627
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
763
|
+
local ____combatClassification_1 = combatClassification
|
|
764
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_1 == ____combatClassification_1
|
|
628
765
|
end
|
|
629
766
|
function Unit.prototype.addClassification(self, classification)
|
|
630
767
|
return unitAddType(self.handle, classification)
|
|
@@ -642,13 +779,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
642
779
|
return isUnitInvisible(self.handle, player.handle)
|
|
643
780
|
end
|
|
644
781
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
645
|
-
local
|
|
782
|
+
local ____temp_2
|
|
646
783
|
if type(x) == "number" then
|
|
647
|
-
|
|
784
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
648
785
|
else
|
|
649
|
-
|
|
786
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
650
787
|
end
|
|
651
|
-
return
|
|
788
|
+
return ____temp_2
|
|
652
789
|
end
|
|
653
790
|
function Unit.prototype.isAllyOf(self, unit)
|
|
654
791
|
return isUnitAlly(
|
|
@@ -674,6 +811,10 @@ end
|
|
|
674
811
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
812
|
queueUnitAnimation(self.handle, animation)
|
|
676
813
|
end
|
|
814
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
815
|
+
self[103] = (self[103] or 0) + 1
|
|
816
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
817
|
+
end
|
|
677
818
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
819
|
setUnitPosition(self.handle, x, y)
|
|
679
820
|
end
|
|
@@ -687,8 +828,15 @@ end
|
|
|
687
828
|
function Unit.prototype.kill(self)
|
|
688
829
|
killUnit(self.handle)
|
|
689
830
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
831
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
832
|
+
local ____ReviveHero_5 = ReviveHero
|
|
833
|
+
local ____array_4 = __TS__SparseArrayNew(self.handle, x, y)
|
|
834
|
+
local ____doEffect_3 = doEffect
|
|
835
|
+
if ____doEffect_3 == nil then
|
|
836
|
+
____doEffect_3 = false
|
|
837
|
+
end
|
|
838
|
+
__TS__SparseArrayPush(____array_4, ____doEffect_3)
|
|
839
|
+
____ReviveHero_5(__TS__SparseArraySpread(____array_4))
|
|
692
840
|
end
|
|
693
841
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
842
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -728,7 +876,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
876
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
877
|
end
|
|
730
878
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
879
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
880
|
end
|
|
733
881
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
882
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -784,6 +932,9 @@ end
|
|
|
784
932
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
933
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
934
|
end
|
|
935
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
936
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
937
|
+
end
|
|
787
938
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
939
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
940
|
end
|
|
@@ -855,18 +1006,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
855
1006
|
self:decrementStunCounter()
|
|
856
1007
|
end
|
|
857
1008
|
function Unit.prototype.incrementStunCounter(self)
|
|
858
|
-
local stunCounter = self[
|
|
859
|
-
if not self[
|
|
1009
|
+
local stunCounter = self[102] or 0
|
|
1010
|
+
if not self[101] or stunCounter >= 0 then
|
|
860
1011
|
BlzPauseUnitEx(self.handle, true)
|
|
861
1012
|
end
|
|
862
|
-
self[
|
|
1013
|
+
self[102] = stunCounter + 1
|
|
863
1014
|
end
|
|
864
1015
|
function Unit.prototype.decrementStunCounter(self)
|
|
865
|
-
local stunCounter = self[
|
|
866
|
-
if not self[
|
|
1016
|
+
local stunCounter = self[102] or 0
|
|
1017
|
+
if not self[101] or stunCounter >= 1 then
|
|
867
1018
|
BlzPauseUnitEx(self.handle, false)
|
|
868
1019
|
end
|
|
869
|
-
self[
|
|
1020
|
+
self[102] = stunCounter - 1
|
|
870
1021
|
end
|
|
871
1022
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
872
1023
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -968,8 +1119,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
968
1119
|
)
|
|
969
1120
|
return targetCollection
|
|
970
1121
|
end
|
|
971
|
-
function Unit.getSelectionOf(self, player)
|
|
972
|
-
|
|
1122
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1123
|
+
if target == nil then
|
|
1124
|
+
target = {}
|
|
1125
|
+
end
|
|
1126
|
+
targetCollection = target
|
|
973
1127
|
targetCollectionNextIndex = 1
|
|
974
1128
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
975
1129
|
return targetCollection
|
|
@@ -991,6 +1145,9 @@ end
|
|
|
991
1145
|
function Unit.prototype.__tostring(self)
|
|
992
1146
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
993
1147
|
end
|
|
1148
|
+
function Unit.getMainSelectedOf(self, player)
|
|
1149
|
+
return mainSelectedUnitByPlayer[player]
|
|
1150
|
+
end
|
|
994
1151
|
__TS__SetDescriptor(
|
|
995
1152
|
Unit.prototype,
|
|
996
1153
|
"_deltas",
|
|
@@ -1071,12 +1228,27 @@ __TS__SetDescriptor(
|
|
|
1071
1228
|
Unit.prototype,
|
|
1072
1229
|
"weapons",
|
|
1073
1230
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1231
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1232
|
+
end},
|
|
1233
|
+
true
|
|
1234
|
+
)
|
|
1235
|
+
__TS__SetDescriptor(
|
|
1236
|
+
Unit.prototype,
|
|
1237
|
+
"firstWeapon",
|
|
1238
|
+
{get = function(self)
|
|
1239
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1240
|
+
rawset(self, "firstWeapon", weapon)
|
|
1241
|
+
return weapon
|
|
1242
|
+
end},
|
|
1243
|
+
true
|
|
1244
|
+
)
|
|
1245
|
+
__TS__SetDescriptor(
|
|
1246
|
+
Unit.prototype,
|
|
1247
|
+
"secondWeapon",
|
|
1248
|
+
{get = function(self)
|
|
1249
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1250
|
+
rawset(self, "secondWeapon", weapon)
|
|
1251
|
+
return weapon
|
|
1080
1252
|
end},
|
|
1081
1253
|
true
|
|
1082
1254
|
)
|
|
@@ -1233,17 +1405,17 @@ __TS__SetDescriptor(
|
|
|
1233
1405
|
"isTeamGlowVisible",
|
|
1234
1406
|
{
|
|
1235
1407
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1408
|
+
return not self[106]
|
|
1237
1409
|
end,
|
|
1238
1410
|
set = function(self, isTeamGlowVisible)
|
|
1239
1411
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1412
|
+
local ____temp_6
|
|
1241
1413
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1414
|
+
____temp_6 = true
|
|
1243
1415
|
else
|
|
1244
|
-
|
|
1416
|
+
____temp_6 = nil
|
|
1245
1417
|
end
|
|
1246
|
-
self[
|
|
1418
|
+
self[106] = ____temp_6
|
|
1247
1419
|
end
|
|
1248
1420
|
},
|
|
1249
1421
|
true
|
|
@@ -1253,7 +1425,7 @@ __TS__SetDescriptor(
|
|
|
1253
1425
|
"color",
|
|
1254
1426
|
{set = function(self, color)
|
|
1255
1427
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1428
|
+
if self[106] then
|
|
1257
1429
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1430
|
end
|
|
1259
1431
|
end},
|
|
@@ -1277,10 +1449,14 @@ __TS__SetDescriptor(
|
|
|
1277
1449
|
"maxHealth",
|
|
1278
1450
|
{
|
|
1279
1451
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1452
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1281
1453
|
end,
|
|
1282
1454
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1455
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1456
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1457
|
+
maxHealth = 1
|
|
1458
|
+
end
|
|
1459
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1284
1460
|
end
|
|
1285
1461
|
},
|
|
1286
1462
|
true
|
|
@@ -1322,10 +1498,10 @@ __TS__SetDescriptor(
|
|
|
1322
1498
|
"health",
|
|
1323
1499
|
{
|
|
1324
1500
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1501
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1326
1502
|
end,
|
|
1327
1503
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1504
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1329
1505
|
end
|
|
1330
1506
|
},
|
|
1331
1507
|
true
|
|
@@ -1536,17 +1712,17 @@ __TS__SetDescriptor(
|
|
|
1536
1712
|
set = function(self, isPaused)
|
|
1537
1713
|
local handle = self.handle
|
|
1538
1714
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
for _ = self[
|
|
1715
|
+
self[101] = true
|
|
1716
|
+
for _ = self[102] or 0, -1 do
|
|
1541
1717
|
BlzPauseUnitEx(handle, true)
|
|
1542
1718
|
end
|
|
1543
1719
|
PauseUnit(handle, true)
|
|
1544
1720
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1721
|
PauseUnit(handle, false)
|
|
1546
|
-
for _ = self[
|
|
1722
|
+
for _ = self[102] or 0, -1 do
|
|
1547
1723
|
BlzPauseUnitEx(handle, false)
|
|
1548
1724
|
end
|
|
1549
|
-
self[
|
|
1725
|
+
self[101] = nil
|
|
1550
1726
|
end
|
|
1551
1727
|
end
|
|
1552
1728
|
},
|
|
@@ -1903,7 +2079,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2079
|
Unit.onResurrect = __TS__New(
|
|
1904
2080
|
InitializingEvent,
|
|
1905
2081
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2082
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2083
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2084
|
dead[unit] = true
|
|
@@ -1919,10 +2094,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2094
|
Unit.morphEvent = __TS__New(
|
|
1920
2095
|
InitializingEvent,
|
|
1921
2096
|
function(event)
|
|
2097
|
+
local function ifNotLeft(unit)
|
|
2098
|
+
local handle = unit.handle
|
|
2099
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2100
|
+
invoke(event, unit)
|
|
2101
|
+
end
|
|
2102
|
+
end
|
|
1922
2103
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2104
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2105
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2106
|
end
|
|
1927
2107
|
end)
|
|
1928
2108
|
end
|
|
@@ -1960,27 +2140,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2140
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2141
|
InitializingEvent,
|
|
1962
2142
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2143
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2144
|
+
local ____GetSpellTargetUnit_result_9
|
|
1966
2145
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2146
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2147
|
else
|
|
1969
|
-
local
|
|
2148
|
+
local ____GetSpellTargetItem_result_8
|
|
1970
2149
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2150
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1972
2151
|
else
|
|
1973
|
-
local
|
|
2152
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1974
2153
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2154
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2155
|
else
|
|
1977
|
-
|
|
2156
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
1978
2157
|
end
|
|
1979
|
-
|
|
2158
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
1980
2159
|
end
|
|
1981
|
-
|
|
2160
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
1982
2161
|
end
|
|
1983
|
-
local target =
|
|
2162
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
1984
2163
|
if target then
|
|
1985
2164
|
invoke(event, unit, id, target)
|
|
1986
2165
|
end
|
|
@@ -2177,7 +2356,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2356
|
)
|
|
2178
2357
|
Unit.onDamaging = (function()
|
|
2179
2358
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2359
|
local trigger = CreateTrigger()
|
|
2182
2360
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2361
|
TriggerAddCondition(
|
|
@@ -2276,7 +2454,6 @@ end)()
|
|
|
2276
2454
|
Unit.onDamage = __TS__New(
|
|
2277
2455
|
InitializingEvent,
|
|
2278
2456
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2457
|
local trigger = CreateTrigger()
|
|
2281
2458
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2459
|
TriggerAddCondition(
|
|
@@ -2292,6 +2469,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2469
|
damageType = BlzGetEventDamageType(),
|
|
2293
2470
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2471
|
isAttack = BlzGetEventIsAttack(),
|
|
2472
|
+
originalAmount = GetEventDamage(),
|
|
2295
2473
|
preventDeath = damageEventPreventDeath
|
|
2296
2474
|
}
|
|
2297
2475
|
local evData = setmetatable(
|
|
@@ -2308,7 +2486,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2486
|
invoke(event, source, target, evData)
|
|
2309
2487
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2488
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2489
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2312
2490
|
BlzSetUnitMaxHP(
|
|
2313
2491
|
target.handle,
|
|
2314
2492
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2500,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2500
|
evData[0],
|
|
2323
2501
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2502
|
)
|
|
2325
|
-
target[
|
|
2503
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2326
2504
|
SetWidgetLife(
|
|
2327
2505
|
target.handle,
|
|
2328
2506
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,7 +2520,7 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2520
|
DestroyTrigger(trigger)
|
|
2343
2521
|
end
|
|
2344
2522
|
)
|
|
2345
|
-
Unit.
|
|
2523
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2524
|
____exports.UnitTriggerEvent,
|
|
2347
2525
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2526
|
function()
|
|
@@ -2353,7 +2531,7 @@ Unit.onItemDrop = __TS__New(
|
|
|
2353
2531
|
return IgnoreEvent
|
|
2354
2532
|
end
|
|
2355
2533
|
)
|
|
2356
|
-
Unit.
|
|
2534
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2535
|
____exports.UnitTriggerEvent,
|
|
2358
2536
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2537
|
function()
|
|
@@ -2364,10 +2542,15 @@ Unit.onItemPickup = __TS__New(
|
|
|
2364
2542
|
return IgnoreEvent
|
|
2365
2543
|
end
|
|
2366
2544
|
)
|
|
2367
|
-
Unit.
|
|
2545
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2546
|
____exports.UnitTriggerEvent,
|
|
2369
2547
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function() return ____exports.Unit:of(
|
|
2548
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2549
|
+
)
|
|
2550
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2551
|
+
____exports.UnitTriggerEvent,
|
|
2552
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2553
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2371
2554
|
)
|
|
2372
2555
|
__TS__ObjectDefineProperty(
|
|
2373
2556
|
Unit,
|
|
@@ -2427,4 +2610,26 @@ __TS__ObjectDefineProperty(
|
|
|
2427
2610
|
end)
|
|
2428
2611
|
end
|
|
2429
2612
|
end)(Unit)
|
|
2613
|
+
mainSelectedUnitByPlayer = {}
|
|
2614
|
+
local syncSlider = BlzCreateFrameByType(
|
|
2615
|
+
"SLIDER",
|
|
2616
|
+
"UnitSyncId",
|
|
2617
|
+
BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0),
|
|
2618
|
+
"",
|
|
2619
|
+
0
|
|
2620
|
+
)
|
|
2621
|
+
BlzFrameSetMinMaxValue(syncSlider, MINIMUM_INTEGER, MAXIMUM_INTEGER)
|
|
2622
|
+
LocalClient.mainSelectedUnitChangeEvent:addListener(function()
|
|
2623
|
+
local ____opt_10 = LocalClient.mainSelectedUnit
|
|
2624
|
+
local syncId = ____opt_10 and ____opt_10[100]
|
|
2625
|
+
BlzFrameSetValue(syncSlider, syncId or 0)
|
|
2626
|
+
end)
|
|
2627
|
+
local trg = CreateTrigger()
|
|
2628
|
+
BlzTriggerRegisterFrameEvent(trg, syncSlider, FRAMEEVENT_SLIDER_VALUE_CHANGED)
|
|
2629
|
+
TriggerAddAction(
|
|
2630
|
+
trg,
|
|
2631
|
+
function()
|
|
2632
|
+
mainSelectedUnitByPlayer[Player:of(GetTriggerPlayer())] = unitBySyncId[BlzGetTriggerFrameValue()]
|
|
2633
|
+
end
|
|
2634
|
+
)
|
|
2430
2635
|
return ____exports
|