warscript 0.0.1-dev.959b9a7 → 0.0.1-dev.96f1707
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/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- 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/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/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- 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/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +36 -11
- package/engine/behaviour/ability/damage.lua +90 -32
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +35 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -15
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -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 +27 -4
- package/engine/behaviour/ability.lua +152 -17
- package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
- package/engine/behaviour/unit.d.ts +10 -2
- package/engine/behaviour/unit.lua +27 -0
- package/engine/buff.d.ts +103 -41
- package/engine/buff.lua +465 -212
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +16 -13
- package/engine/internal/ability.lua +80 -76
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +56 -25
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +10 -1
- package/engine/internal/unit/ability.lua +36 -14
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/bonus.d.ts +11 -8
- package/engine/internal/unit/bonus.lua +23 -1
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -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 +70 -16
- package/engine/internal/unit.lua +407 -134
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.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/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -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/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +19 -18
- package/engine/object-data/entry/ability-type.lua +89 -33
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +6 -13
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -2
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +15 -2
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -2
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +45 -3
- package/engine/object-data/entry/unit-type.lua +402 -59
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +1 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +18 -17
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field.d.ts +2 -3
- package/engine/object-field.lua +4 -0
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -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 +3 -1
- package/engine/standard/fields/ability.lua +3 -1
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +12 -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/objutil/unit.lua +8 -0
- 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 +11 -5
- package/utility/arrays.lua +34 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- 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/reflection.lua +11 -7
- 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
|
|
@@ -48,11 +51,14 @@ local ____arrays = require("utility.arrays")
|
|
|
48
51
|
local forEach = ____arrays.forEach
|
|
49
52
|
local ____math = require("math")
|
|
50
53
|
local min = ____math.min
|
|
54
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
+
local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
|
|
51
56
|
local match = string.match
|
|
52
57
|
local ____tostring = _G.tostring
|
|
53
58
|
local setUnitAnimation = SetUnitAnimation
|
|
54
59
|
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
55
60
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
+
local resetUnitAnimation = ResetUnitAnimation
|
|
56
62
|
local queueUnitAnimation = QueueUnitAnimation
|
|
57
63
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
58
64
|
local getUnitRealField = BlzGetUnitRealField
|
|
@@ -72,6 +78,7 @@ local setUnitScale = SetUnitScale
|
|
|
72
78
|
local setUnitPosition = SetUnitPosition
|
|
73
79
|
local setUnitTimeScale = SetUnitTimeScale
|
|
74
80
|
local getHandleId = GetHandleId
|
|
81
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
75
82
|
local createUnit = CreateUnit
|
|
76
83
|
local killUnit = KillUnit
|
|
77
84
|
local setUnitExploded = SetUnitExploded
|
|
@@ -92,6 +99,10 @@ local isUnitInRangeXY = IsUnitInRangeXY
|
|
|
92
99
|
local isUnitInRange = IsUnitInRange
|
|
93
100
|
local setResourceAmount = SetResourceAmount
|
|
94
101
|
local getResourceAmount = GetResourceAmount
|
|
102
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
103
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
104
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
105
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
106
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
107
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
108
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -275,16 +286,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
286
|
end
|
|
276
287
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
288
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
289
|
return setmetatable(
|
|
280
|
-
|
|
290
|
+
{},
|
|
281
291
|
{
|
|
282
292
|
__index = function(self, id)
|
|
283
293
|
if type(id) ~= "number" then
|
|
284
294
|
return event[id]
|
|
285
295
|
end
|
|
286
296
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
297
|
event:addListener(function(...)
|
|
289
298
|
local id = idGetter(...)
|
|
290
299
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +331,6 @@ local function dispatchAbility(event)
|
|
|
322
331
|
return event[id]
|
|
323
332
|
end
|
|
324
333
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
334
|
event:addListener(function(unit, ability, ...)
|
|
327
335
|
local dispatched = rawget(self, ability.typeId)
|
|
328
336
|
if dispatched ~= nil then
|
|
@@ -387,51 +395,158 @@ local getters = {
|
|
|
387
395
|
return BlzGetUnitArmor(unit)
|
|
388
396
|
end
|
|
389
397
|
}
|
|
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
|
-
|
|
398
|
+
____exports.UnitWeapon = __TS__Class()
|
|
399
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
400
|
+
UnitWeapon.name = "UnitWeapon"
|
|
401
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
402
|
+
self.unit = unit
|
|
403
|
+
self.index = index
|
|
404
|
+
end
|
|
405
|
+
__TS__SetDescriptor(
|
|
406
|
+
UnitWeapon.prototype,
|
|
407
|
+
"cooldown",
|
|
408
|
+
{
|
|
409
|
+
get = function(self)
|
|
410
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
411
|
+
end,
|
|
412
|
+
set = function(self, cooldown)
|
|
413
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
414
|
+
end
|
|
415
|
+
},
|
|
416
|
+
true
|
|
417
|
+
)
|
|
418
|
+
__TS__SetDescriptor(
|
|
419
|
+
UnitWeapon.prototype,
|
|
420
|
+
"damage",
|
|
421
|
+
{
|
|
422
|
+
get = function(self)
|
|
423
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
424
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
425
|
+
return {minimumDamage, maximumDamage}
|
|
426
|
+
end,
|
|
427
|
+
set = function(self, ____bindingPattern0)
|
|
428
|
+
local maximumDamage
|
|
429
|
+
local minimumDamage
|
|
430
|
+
minimumDamage = ____bindingPattern0[1]
|
|
431
|
+
maximumDamage = ____bindingPattern0[2]
|
|
432
|
+
self.damageBase = minimumDamage - 1
|
|
433
|
+
self.damageDiceCount = 1
|
|
434
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
435
|
+
end
|
|
436
|
+
},
|
|
437
|
+
true
|
|
438
|
+
)
|
|
439
|
+
__TS__SetDescriptor(
|
|
440
|
+
UnitWeapon.prototype,
|
|
441
|
+
"damageBase",
|
|
442
|
+
{
|
|
443
|
+
get = function(self)
|
|
444
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
445
|
+
end,
|
|
446
|
+
set = function(self, damageBase)
|
|
447
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
448
|
+
end
|
|
449
|
+
},
|
|
450
|
+
true
|
|
451
|
+
)
|
|
452
|
+
__TS__SetDescriptor(
|
|
453
|
+
UnitWeapon.prototype,
|
|
454
|
+
"damageDiceCount",
|
|
455
|
+
{
|
|
456
|
+
get = function(self)
|
|
457
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
458
|
+
end,
|
|
459
|
+
set = function(self, damageDiceCount)
|
|
460
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
461
|
+
end
|
|
462
|
+
},
|
|
463
|
+
true
|
|
464
|
+
)
|
|
465
|
+
__TS__SetDescriptor(
|
|
466
|
+
UnitWeapon.prototype,
|
|
467
|
+
"damageDiceSideCount",
|
|
468
|
+
{
|
|
469
|
+
get = function(self)
|
|
470
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
471
|
+
end,
|
|
472
|
+
set = function(self, damageDiceSideCount)
|
|
473
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
474
|
+
end
|
|
475
|
+
},
|
|
476
|
+
true
|
|
477
|
+
)
|
|
478
|
+
__TS__SetDescriptor(
|
|
479
|
+
UnitWeapon.prototype,
|
|
480
|
+
"range",
|
|
481
|
+
{
|
|
482
|
+
get = function(self)
|
|
483
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
484
|
+
end,
|
|
485
|
+
set = function(self, range)
|
|
486
|
+
local handle = self.unit.handle
|
|
487
|
+
local index = self.index
|
|
488
|
+
setUnitWeaponRealField(
|
|
489
|
+
handle,
|
|
490
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
491
|
+
index + 1,
|
|
492
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
493
|
+
)
|
|
494
|
+
end
|
|
495
|
+
},
|
|
496
|
+
true
|
|
497
|
+
)
|
|
498
|
+
__TS__SetDescriptor(
|
|
499
|
+
UnitWeapon.prototype,
|
|
500
|
+
"impactDelay",
|
|
501
|
+
{
|
|
502
|
+
get = function(self)
|
|
503
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
504
|
+
end,
|
|
505
|
+
set = function(self, impactDelay)
|
|
506
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
507
|
+
end
|
|
508
|
+
},
|
|
509
|
+
true
|
|
510
|
+
)
|
|
511
|
+
__TS__SetDescriptor(
|
|
512
|
+
UnitWeapon.prototype,
|
|
513
|
+
"missileArc",
|
|
514
|
+
{
|
|
515
|
+
get = function(self)
|
|
516
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
517
|
+
end,
|
|
518
|
+
set = function(self, missileArc)
|
|
519
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
520
|
+
end
|
|
521
|
+
},
|
|
522
|
+
true
|
|
523
|
+
)
|
|
524
|
+
__TS__SetDescriptor(
|
|
525
|
+
UnitWeapon.prototype,
|
|
526
|
+
"missileModelPath",
|
|
527
|
+
{
|
|
528
|
+
get = function(self)
|
|
529
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
530
|
+
end,
|
|
531
|
+
set = function(self, missileModelPath)
|
|
532
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
533
|
+
end
|
|
534
|
+
},
|
|
535
|
+
true
|
|
536
|
+
)
|
|
537
|
+
__TS__SetDescriptor(
|
|
538
|
+
UnitWeapon.prototype,
|
|
539
|
+
"missileSpeed",
|
|
540
|
+
{
|
|
541
|
+
get = function(self)
|
|
542
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
543
|
+
end,
|
|
544
|
+
set = function(self, missileSpeed)
|
|
545
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
546
|
+
end
|
|
547
|
+
},
|
|
548
|
+
true
|
|
549
|
+
)
|
|
435
550
|
local unitInventorySize = UnitInventorySize
|
|
436
551
|
local unitItemInSlot = UnitItemInSlot
|
|
437
552
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -442,8 +557,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
557
|
local unitAddAbility = UnitAddAbility
|
|
443
558
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
559
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
560
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
561
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
562
|
if ability == nil then
|
|
@@ -453,17 +566,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
453
566
|
____exports.Unit:of(unit)
|
|
454
567
|
)
|
|
455
568
|
end
|
|
456
|
-
if not unitAddAbility(unit, abilityId) then
|
|
457
|
-
if getUnitAbility(unit, abilityId) == ability then
|
|
458
|
-
return UnitAbility:of(
|
|
459
|
-
ability,
|
|
460
|
-
abilityId,
|
|
461
|
-
____exports.Unit:of(unit)
|
|
462
|
-
)
|
|
463
|
-
end
|
|
464
|
-
else
|
|
465
|
-
unitRemoveAbility(unit, abilityId)
|
|
466
|
-
end
|
|
467
569
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
468
570
|
local item = unitItemInSlot(unit, i)
|
|
469
571
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -520,12 +622,34 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
622
|
ShowUnit(dummy, false)
|
|
521
623
|
dummies[player] = dummy
|
|
522
624
|
end
|
|
625
|
+
local function delayHealthChecksCallback(unit)
|
|
626
|
+
local counter = (unit[103] or 0) - 1
|
|
627
|
+
if counter ~= 0 then
|
|
628
|
+
unit[103] = counter
|
|
629
|
+
return
|
|
630
|
+
end
|
|
631
|
+
unit[103] = nil
|
|
632
|
+
local healthBonus = unit[104]
|
|
633
|
+
if healthBonus ~= nil then
|
|
634
|
+
unit[104] = nil
|
|
635
|
+
local handle = unit.handle
|
|
636
|
+
BlzSetUnitMaxHP(
|
|
637
|
+
handle,
|
|
638
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
639
|
+
)
|
|
640
|
+
end
|
|
641
|
+
end
|
|
642
|
+
local nextSyncId = 1
|
|
643
|
+
local unitBySyncId = setmetatable({}, {__mode = "k"})
|
|
523
644
|
____exports.Unit = __TS__Class()
|
|
524
645
|
local Unit = ____exports.Unit
|
|
525
646
|
Unit.name = "Unit"
|
|
526
647
|
__TS__ClassExtends(Unit, Handle)
|
|
527
648
|
function Unit.prototype.____constructor(self, handle)
|
|
528
649
|
Handle.prototype.____constructor(self, handle)
|
|
650
|
+
local ____nextSyncId_0 = nextSyncId
|
|
651
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
652
|
+
self.syncId = ____nextSyncId_0
|
|
529
653
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
530
654
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
531
655
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -538,6 +662,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
538
662
|
fourCC("Amrf")
|
|
539
663
|
))
|
|
540
664
|
end
|
|
665
|
+
unitBySyncId[self.syncId] = self
|
|
541
666
|
local ____ = self.abilities
|
|
542
667
|
end
|
|
543
668
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -556,6 +681,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
556
681
|
end
|
|
557
682
|
function Unit.prototype.onDestroy(self)
|
|
558
683
|
local handle = self.handle
|
|
684
|
+
self[107] = getUnitX(handle)
|
|
685
|
+
self[108] = getUnitY(handle)
|
|
559
686
|
if not self._owner then
|
|
560
687
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
561
688
|
end
|
|
@@ -623,8 +750,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
623
750
|
end}
|
|
624
751
|
end
|
|
625
752
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
626
|
-
local
|
|
627
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
753
|
+
local ____combatClassification_1 = combatClassification
|
|
754
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_1 == ____combatClassification_1
|
|
628
755
|
end
|
|
629
756
|
function Unit.prototype.addClassification(self, classification)
|
|
630
757
|
return unitAddType(self.handle, classification)
|
|
@@ -642,13 +769,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
642
769
|
return isUnitInvisible(self.handle, player.handle)
|
|
643
770
|
end
|
|
644
771
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
645
|
-
local
|
|
772
|
+
local ____temp_2
|
|
646
773
|
if type(x) == "number" then
|
|
647
|
-
|
|
774
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
648
775
|
else
|
|
649
|
-
|
|
776
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
650
777
|
end
|
|
651
|
-
return
|
|
778
|
+
return ____temp_2
|
|
652
779
|
end
|
|
653
780
|
function Unit.prototype.isAllyOf(self, unit)
|
|
654
781
|
return isUnitAlly(
|
|
@@ -671,9 +798,16 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
671
798
|
setUnitAnimation(self.handle, animation)
|
|
672
799
|
end
|
|
673
800
|
end
|
|
801
|
+
function Unit.prototype.resetAnimation(self)
|
|
802
|
+
resetUnitAnimation(self.handle)
|
|
803
|
+
end
|
|
674
804
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
805
|
queueUnitAnimation(self.handle, animation)
|
|
676
806
|
end
|
|
807
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
808
|
+
self[103] = (self[103] or 0) + 1
|
|
809
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
810
|
+
end
|
|
677
811
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
812
|
setUnitPosition(self.handle, x, y)
|
|
679
813
|
end
|
|
@@ -687,8 +821,15 @@ end
|
|
|
687
821
|
function Unit.prototype.kill(self)
|
|
688
822
|
killUnit(self.handle)
|
|
689
823
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
824
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
825
|
+
local ____ReviveHero_5 = ReviveHero
|
|
826
|
+
local ____array_4 = __TS__SparseArrayNew(self.handle, x, y)
|
|
827
|
+
local ____doEffect_3 = doEffect
|
|
828
|
+
if ____doEffect_3 == nil then
|
|
829
|
+
____doEffect_3 = false
|
|
830
|
+
end
|
|
831
|
+
__TS__SparseArrayPush(____array_4, ____doEffect_3)
|
|
832
|
+
____ReviveHero_5(__TS__SparseArraySpread(____array_4))
|
|
692
833
|
end
|
|
693
834
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
835
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -728,7 +869,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
869
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
870
|
end
|
|
730
871
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
872
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
873
|
end
|
|
733
874
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
875
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -784,6 +925,9 @@ end
|
|
|
784
925
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
926
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
927
|
end
|
|
928
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
929
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
930
|
+
end
|
|
787
931
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
932
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
933
|
end
|
|
@@ -794,8 +938,15 @@ function Unit.prototype.interruptAttack(self)
|
|
|
794
938
|
unitInterruptAttack(self.handle)
|
|
795
939
|
end
|
|
796
940
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
797
|
-
|
|
798
|
-
unitDisableAbility(
|
|
941
|
+
local handle = self.handle
|
|
942
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
943
|
+
Timer:run(
|
|
944
|
+
unitDisableAbility,
|
|
945
|
+
handle,
|
|
946
|
+
abilityId,
|
|
947
|
+
false,
|
|
948
|
+
false
|
|
949
|
+
)
|
|
799
950
|
end
|
|
800
951
|
function Unit.prototype.getDistanceTo(self, target)
|
|
801
952
|
local handle = self.handle
|
|
@@ -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.getBySyncId(self, syncId)
|
|
1149
|
+
return unitBySyncId[syncId]
|
|
1150
|
+
end
|
|
994
1151
|
__TS__SetDescriptor(
|
|
995
1152
|
Unit.prototype,
|
|
996
1153
|
"_deltas",
|
|
@@ -1054,6 +1211,14 @@ __TS__SetDescriptor(
|
|
|
1054
1211
|
end},
|
|
1055
1212
|
true
|
|
1056
1213
|
)
|
|
1214
|
+
__TS__SetDescriptor(
|
|
1215
|
+
Unit.prototype,
|
|
1216
|
+
"isStunned",
|
|
1217
|
+
{get = function(self)
|
|
1218
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1219
|
+
end},
|
|
1220
|
+
true
|
|
1221
|
+
)
|
|
1057
1222
|
__TS__SetDescriptor(
|
|
1058
1223
|
Unit.prototype,
|
|
1059
1224
|
"combatClassifications",
|
|
@@ -1071,12 +1236,27 @@ __TS__SetDescriptor(
|
|
|
1071
1236
|
Unit.prototype,
|
|
1072
1237
|
"weapons",
|
|
1073
1238
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1239
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1240
|
+
end},
|
|
1241
|
+
true
|
|
1242
|
+
)
|
|
1243
|
+
__TS__SetDescriptor(
|
|
1244
|
+
Unit.prototype,
|
|
1245
|
+
"firstWeapon",
|
|
1246
|
+
{get = function(self)
|
|
1247
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1248
|
+
rawset(self, "firstWeapon", weapon)
|
|
1249
|
+
return weapon
|
|
1250
|
+
end},
|
|
1251
|
+
true
|
|
1252
|
+
)
|
|
1253
|
+
__TS__SetDescriptor(
|
|
1254
|
+
Unit.prototype,
|
|
1255
|
+
"secondWeapon",
|
|
1256
|
+
{get = function(self)
|
|
1257
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1258
|
+
rawset(self, "secondWeapon", weapon)
|
|
1259
|
+
return weapon
|
|
1080
1260
|
end},
|
|
1081
1261
|
true
|
|
1082
1262
|
)
|
|
@@ -1112,6 +1292,19 @@ __TS__SetDescriptor(
|
|
|
1112
1292
|
},
|
|
1113
1293
|
true
|
|
1114
1294
|
)
|
|
1295
|
+
__TS__SetDescriptor(
|
|
1296
|
+
Unit.prototype,
|
|
1297
|
+
"primaryAttribute",
|
|
1298
|
+
{
|
|
1299
|
+
get = function(self)
|
|
1300
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1301
|
+
end,
|
|
1302
|
+
set = function(self, primaryAttribute)
|
|
1303
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1304
|
+
end
|
|
1305
|
+
},
|
|
1306
|
+
true
|
|
1307
|
+
)
|
|
1115
1308
|
__TS__SetDescriptor(
|
|
1116
1309
|
Unit.prototype,
|
|
1117
1310
|
"strengthBase",
|
|
@@ -1233,17 +1426,17 @@ __TS__SetDescriptor(
|
|
|
1233
1426
|
"isTeamGlowVisible",
|
|
1234
1427
|
{
|
|
1235
1428
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1429
|
+
return not self[106]
|
|
1237
1430
|
end,
|
|
1238
1431
|
set = function(self, isTeamGlowVisible)
|
|
1239
1432
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1433
|
+
local ____temp_6
|
|
1241
1434
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1435
|
+
____temp_6 = true
|
|
1243
1436
|
else
|
|
1244
|
-
|
|
1437
|
+
____temp_6 = nil
|
|
1245
1438
|
end
|
|
1246
|
-
self[
|
|
1439
|
+
self[106] = ____temp_6
|
|
1247
1440
|
end
|
|
1248
1441
|
},
|
|
1249
1442
|
true
|
|
@@ -1253,7 +1446,7 @@ __TS__SetDescriptor(
|
|
|
1253
1446
|
"color",
|
|
1254
1447
|
{set = function(self, color)
|
|
1255
1448
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1449
|
+
if self[106] then
|
|
1257
1450
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1451
|
end
|
|
1259
1452
|
end},
|
|
@@ -1277,10 +1470,14 @@ __TS__SetDescriptor(
|
|
|
1277
1470
|
"maxHealth",
|
|
1278
1471
|
{
|
|
1279
1472
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1473
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1281
1474
|
end,
|
|
1282
1475
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1476
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1477
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1478
|
+
maxHealth = 1
|
|
1479
|
+
end
|
|
1480
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1284
1481
|
end
|
|
1285
1482
|
},
|
|
1286
1483
|
true
|
|
@@ -1322,10 +1519,10 @@ __TS__SetDescriptor(
|
|
|
1322
1519
|
"health",
|
|
1323
1520
|
{
|
|
1324
1521
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1522
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1326
1523
|
end,
|
|
1327
1524
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1525
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1329
1526
|
end
|
|
1330
1527
|
},
|
|
1331
1528
|
true
|
|
@@ -1419,7 +1616,7 @@ __TS__SetDescriptor(
|
|
|
1419
1616
|
"x",
|
|
1420
1617
|
{
|
|
1421
1618
|
get = function(self)
|
|
1422
|
-
return getUnitX(self.handle)
|
|
1619
|
+
return self[107] or getUnitX(self.handle)
|
|
1423
1620
|
end,
|
|
1424
1621
|
set = function(self, v)
|
|
1425
1622
|
SetUnitX(self.handle, v)
|
|
@@ -1432,7 +1629,7 @@ __TS__SetDescriptor(
|
|
|
1432
1629
|
"y",
|
|
1433
1630
|
{
|
|
1434
1631
|
get = function(self)
|
|
1435
|
-
return getUnitY(self.handle)
|
|
1632
|
+
return self[108] or getUnitY(self.handle)
|
|
1436
1633
|
end,
|
|
1437
1634
|
set = function(self, v)
|
|
1438
1635
|
SetUnitY(self.handle, v)
|
|
@@ -1536,17 +1733,17 @@ __TS__SetDescriptor(
|
|
|
1536
1733
|
set = function(self, isPaused)
|
|
1537
1734
|
local handle = self.handle
|
|
1538
1735
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
for _ = self[
|
|
1736
|
+
self[101] = true
|
|
1737
|
+
for _ = self[102] or 0, -1 do
|
|
1541
1738
|
BlzPauseUnitEx(handle, true)
|
|
1542
1739
|
end
|
|
1543
1740
|
PauseUnit(handle, true)
|
|
1544
1741
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1742
|
PauseUnit(handle, false)
|
|
1546
|
-
for _ = self[
|
|
1743
|
+
for _ = self[102] or 0, -1 do
|
|
1547
1744
|
BlzPauseUnitEx(handle, false)
|
|
1548
1745
|
end
|
|
1549
|
-
self[
|
|
1746
|
+
self[101] = nil
|
|
1550
1747
|
end
|
|
1551
1748
|
end
|
|
1552
1749
|
},
|
|
@@ -1649,6 +1846,19 @@ __TS__SetDescriptor(
|
|
|
1649
1846
|
end},
|
|
1650
1847
|
true
|
|
1651
1848
|
)
|
|
1849
|
+
__TS__SetDescriptor(
|
|
1850
|
+
Unit.prototype,
|
|
1851
|
+
"movementType",
|
|
1852
|
+
{
|
|
1853
|
+
get = function(self)
|
|
1854
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1855
|
+
end,
|
|
1856
|
+
set = function(self, movementType)
|
|
1857
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1858
|
+
end
|
|
1859
|
+
},
|
|
1860
|
+
true
|
|
1861
|
+
)
|
|
1652
1862
|
__TS__SetDescriptor(
|
|
1653
1863
|
Unit.prototype,
|
|
1654
1864
|
"pathing",
|
|
@@ -1903,7 +2113,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2113
|
Unit.onResurrect = __TS__New(
|
|
1904
2114
|
InitializingEvent,
|
|
1905
2115
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2116
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2117
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2118
|
dead[unit] = true
|
|
@@ -1919,10 +2128,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2128
|
Unit.morphEvent = __TS__New(
|
|
1920
2129
|
InitializingEvent,
|
|
1921
2130
|
function(event)
|
|
2131
|
+
local function ifNotLeft(unit)
|
|
2132
|
+
local handle = unit.handle
|
|
2133
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2134
|
+
invoke(event, unit)
|
|
2135
|
+
end
|
|
2136
|
+
end
|
|
1922
2137
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2138
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2139
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2140
|
end
|
|
1927
2141
|
end)
|
|
1928
2142
|
end
|
|
@@ -1960,27 +2174,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2174
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2175
|
InitializingEvent,
|
|
1962
2176
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2177
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2178
|
+
local ____GetSpellTargetUnit_result_9
|
|
1966
2179
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2180
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2181
|
else
|
|
1969
|
-
local
|
|
2182
|
+
local ____GetSpellTargetItem_result_8
|
|
1970
2183
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2184
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1972
2185
|
else
|
|
1973
|
-
local
|
|
2186
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1974
2187
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2188
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2189
|
else
|
|
1977
|
-
|
|
2190
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
1978
2191
|
end
|
|
1979
|
-
|
|
2192
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
1980
2193
|
end
|
|
1981
|
-
|
|
2194
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
1982
2195
|
end
|
|
1983
|
-
local target =
|
|
2196
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
1984
2197
|
if target then
|
|
1985
2198
|
invoke(event, unit, id, target)
|
|
1986
2199
|
end
|
|
@@ -2152,10 +2365,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2152
2365
|
____exports.UnitTriggerEvent,
|
|
2153
2366
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2154
2367
|
function()
|
|
2155
|
-
local
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2368
|
+
local handle = getOrderedUnit()
|
|
2369
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2370
|
+
local unit = ____exports.Unit:of(handle)
|
|
2371
|
+
if unit.state == 1 then
|
|
2372
|
+
return unit, getIssuedOrderId()
|
|
2373
|
+
end
|
|
2159
2374
|
end
|
|
2160
2375
|
return IgnoreEvent
|
|
2161
2376
|
end
|
|
@@ -2177,7 +2392,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2392
|
)
|
|
2178
2393
|
Unit.onDamaging = (function()
|
|
2179
2394
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2395
|
local trigger = CreateTrigger()
|
|
2182
2396
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2397
|
TriggerAddCondition(
|
|
@@ -2276,7 +2490,6 @@ end)()
|
|
|
2276
2490
|
Unit.onDamage = __TS__New(
|
|
2277
2491
|
InitializingEvent,
|
|
2278
2492
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2493
|
local trigger = CreateTrigger()
|
|
2281
2494
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2495
|
TriggerAddCondition(
|
|
@@ -2292,6 +2505,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2505
|
damageType = BlzGetEventDamageType(),
|
|
2293
2506
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2507
|
isAttack = BlzGetEventIsAttack(),
|
|
2508
|
+
originalAmount = GetEventDamage(),
|
|
2295
2509
|
preventDeath = damageEventPreventDeath
|
|
2296
2510
|
}
|
|
2297
2511
|
local evData = setmetatable(
|
|
@@ -2308,7 +2522,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2522
|
invoke(event, source, target, evData)
|
|
2309
2523
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2524
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2525
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2312
2526
|
BlzSetUnitMaxHP(
|
|
2313
2527
|
target.handle,
|
|
2314
2528
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2536,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2536
|
evData[0],
|
|
2323
2537
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2538
|
)
|
|
2325
|
-
target[
|
|
2539
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2326
2540
|
SetWidgetLife(
|
|
2327
2541
|
target.handle,
|
|
2328
2542
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,32 +2556,91 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2556
|
DestroyTrigger(trigger)
|
|
2343
2557
|
end
|
|
2344
2558
|
)
|
|
2345
|
-
Unit.
|
|
2559
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2560
|
____exports.UnitTriggerEvent,
|
|
2347
2561
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2562
|
function()
|
|
2349
2563
|
local unit = getTriggerUnit()
|
|
2350
|
-
|
|
2351
|
-
|
|
2564
|
+
local item = getManipulatedItem()
|
|
2565
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2566
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2352
2567
|
end
|
|
2353
2568
|
return IgnoreEvent
|
|
2354
2569
|
end
|
|
2355
2570
|
)
|
|
2356
|
-
Unit.
|
|
2571
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2572
|
____exports.UnitTriggerEvent,
|
|
2358
2573
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2574
|
function()
|
|
2360
2575
|
local unit = getTriggerUnit()
|
|
2361
|
-
|
|
2362
|
-
|
|
2576
|
+
local item = getManipulatedItem()
|
|
2577
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2578
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2363
2579
|
end
|
|
2364
2580
|
return IgnoreEvent
|
|
2365
2581
|
end
|
|
2366
2582
|
)
|
|
2367
|
-
Unit.
|
|
2583
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2584
|
____exports.UnitTriggerEvent,
|
|
2369
2585
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function()
|
|
2586
|
+
function()
|
|
2587
|
+
local unit = getTriggerUnit()
|
|
2588
|
+
local item = getManipulatedItem()
|
|
2589
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2590
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2591
|
+
end
|
|
2592
|
+
return IgnoreEvent
|
|
2593
|
+
end
|
|
2594
|
+
)
|
|
2595
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2596
|
+
____exports.UnitTriggerEvent,
|
|
2597
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2598
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2599
|
+
)
|
|
2600
|
+
__TS__ObjectDefineProperty(
|
|
2601
|
+
Unit,
|
|
2602
|
+
"itemUseOrderEvent",
|
|
2603
|
+
{get = function(self)
|
|
2604
|
+
local event = __TS__New(Event)
|
|
2605
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2606
|
+
local slot = order - orderId("useslot0")
|
|
2607
|
+
local function listener(unit)
|
|
2608
|
+
local item = unit.items[slot + 1]
|
|
2609
|
+
if item ~= nil then
|
|
2610
|
+
invoke(event, unit, item)
|
|
2611
|
+
end
|
|
2612
|
+
end
|
|
2613
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2614
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2615
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2616
|
+
end
|
|
2617
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2618
|
+
return event
|
|
2619
|
+
end}
|
|
2620
|
+
)
|
|
2621
|
+
__TS__ObjectDefineProperty(
|
|
2622
|
+
Unit,
|
|
2623
|
+
"itemMoveOrderEvent",
|
|
2624
|
+
{get = function(self)
|
|
2625
|
+
local event = __TS__New(Event)
|
|
2626
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2627
|
+
local slotTo = order - orderId("moveslot0")
|
|
2628
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2629
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2630
|
+
if slotFrom ~= nil then
|
|
2631
|
+
invoke(
|
|
2632
|
+
event,
|
|
2633
|
+
unit,
|
|
2634
|
+
item,
|
|
2635
|
+
slotFrom,
|
|
2636
|
+
slotTo
|
|
2637
|
+
)
|
|
2638
|
+
end
|
|
2639
|
+
end)
|
|
2640
|
+
end
|
|
2641
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2642
|
+
return event
|
|
2643
|
+
end}
|
|
2371
2644
|
)
|
|
2372
2645
|
__TS__ObjectDefineProperty(
|
|
2373
2646
|
Unit,
|