warscript 0.0.1-dev.ee2345e → 0.0.1-dev.f1df135
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/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/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 +94 -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 +28 -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 +64 -16
- package/engine/internal/unit.lua +381 -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/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/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/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 +82 -33
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +13 -37
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +1 -2
- package/engine/object-data/entry/buff-type.lua +2 -2
- 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 +394 -57
- 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/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -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 +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
|
)
|
|
@@ -1233,17 +1413,17 @@ __TS__SetDescriptor(
|
|
|
1233
1413
|
"isTeamGlowVisible",
|
|
1234
1414
|
{
|
|
1235
1415
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1416
|
+
return not self[106]
|
|
1237
1417
|
end,
|
|
1238
1418
|
set = function(self, isTeamGlowVisible)
|
|
1239
1419
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1420
|
+
local ____temp_6
|
|
1241
1421
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1422
|
+
____temp_6 = true
|
|
1243
1423
|
else
|
|
1244
|
-
|
|
1424
|
+
____temp_6 = nil
|
|
1245
1425
|
end
|
|
1246
|
-
self[
|
|
1426
|
+
self[106] = ____temp_6
|
|
1247
1427
|
end
|
|
1248
1428
|
},
|
|
1249
1429
|
true
|
|
@@ -1253,7 +1433,7 @@ __TS__SetDescriptor(
|
|
|
1253
1433
|
"color",
|
|
1254
1434
|
{set = function(self, color)
|
|
1255
1435
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1436
|
+
if self[106] then
|
|
1257
1437
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1438
|
end
|
|
1259
1439
|
end},
|
|
@@ -1277,10 +1457,14 @@ __TS__SetDescriptor(
|
|
|
1277
1457
|
"maxHealth",
|
|
1278
1458
|
{
|
|
1279
1459
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1460
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1281
1461
|
end,
|
|
1282
1462
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1463
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1464
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1465
|
+
maxHealth = 1
|
|
1466
|
+
end
|
|
1467
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1284
1468
|
end
|
|
1285
1469
|
},
|
|
1286
1470
|
true
|
|
@@ -1322,10 +1506,10 @@ __TS__SetDescriptor(
|
|
|
1322
1506
|
"health",
|
|
1323
1507
|
{
|
|
1324
1508
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1509
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1326
1510
|
end,
|
|
1327
1511
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1512
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1329
1513
|
end
|
|
1330
1514
|
},
|
|
1331
1515
|
true
|
|
@@ -1419,7 +1603,7 @@ __TS__SetDescriptor(
|
|
|
1419
1603
|
"x",
|
|
1420
1604
|
{
|
|
1421
1605
|
get = function(self)
|
|
1422
|
-
return getUnitX(self.handle)
|
|
1606
|
+
return self[107] or getUnitX(self.handle)
|
|
1423
1607
|
end,
|
|
1424
1608
|
set = function(self, v)
|
|
1425
1609
|
SetUnitX(self.handle, v)
|
|
@@ -1432,7 +1616,7 @@ __TS__SetDescriptor(
|
|
|
1432
1616
|
"y",
|
|
1433
1617
|
{
|
|
1434
1618
|
get = function(self)
|
|
1435
|
-
return getUnitY(self.handle)
|
|
1619
|
+
return self[108] or getUnitY(self.handle)
|
|
1436
1620
|
end,
|
|
1437
1621
|
set = function(self, v)
|
|
1438
1622
|
SetUnitY(self.handle, v)
|
|
@@ -1536,17 +1720,17 @@ __TS__SetDescriptor(
|
|
|
1536
1720
|
set = function(self, isPaused)
|
|
1537
1721
|
local handle = self.handle
|
|
1538
1722
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
for _ = self[
|
|
1723
|
+
self[101] = true
|
|
1724
|
+
for _ = self[102] or 0, -1 do
|
|
1541
1725
|
BlzPauseUnitEx(handle, true)
|
|
1542
1726
|
end
|
|
1543
1727
|
PauseUnit(handle, true)
|
|
1544
1728
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1729
|
PauseUnit(handle, false)
|
|
1546
|
-
for _ = self[
|
|
1730
|
+
for _ = self[102] or 0, -1 do
|
|
1547
1731
|
BlzPauseUnitEx(handle, false)
|
|
1548
1732
|
end
|
|
1549
|
-
self[
|
|
1733
|
+
self[101] = nil
|
|
1550
1734
|
end
|
|
1551
1735
|
end
|
|
1552
1736
|
},
|
|
@@ -1903,7 +2087,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2087
|
Unit.onResurrect = __TS__New(
|
|
1904
2088
|
InitializingEvent,
|
|
1905
2089
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2090
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2091
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2092
|
dead[unit] = true
|
|
@@ -1919,10 +2102,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2102
|
Unit.morphEvent = __TS__New(
|
|
1920
2103
|
InitializingEvent,
|
|
1921
2104
|
function(event)
|
|
2105
|
+
local function ifNotLeft(unit)
|
|
2106
|
+
local handle = unit.handle
|
|
2107
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2108
|
+
invoke(event, unit)
|
|
2109
|
+
end
|
|
2110
|
+
end
|
|
1922
2111
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2112
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2113
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2114
|
end
|
|
1927
2115
|
end)
|
|
1928
2116
|
end
|
|
@@ -1960,27 +2148,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2148
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2149
|
InitializingEvent,
|
|
1962
2150
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2151
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2152
|
+
local ____GetSpellTargetUnit_result_9
|
|
1966
2153
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2154
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2155
|
else
|
|
1969
|
-
local
|
|
2156
|
+
local ____GetSpellTargetItem_result_8
|
|
1970
2157
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2158
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1972
2159
|
else
|
|
1973
|
-
local
|
|
2160
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1974
2161
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2162
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2163
|
else
|
|
1977
|
-
|
|
2164
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
1978
2165
|
end
|
|
1979
|
-
|
|
2166
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
1980
2167
|
end
|
|
1981
|
-
|
|
2168
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
1982
2169
|
end
|
|
1983
|
-
local target =
|
|
2170
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
1984
2171
|
if target then
|
|
1985
2172
|
invoke(event, unit, id, target)
|
|
1986
2173
|
end
|
|
@@ -2152,10 +2339,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2152
2339
|
____exports.UnitTriggerEvent,
|
|
2153
2340
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2154
2341
|
function()
|
|
2155
|
-
local
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2342
|
+
local handle = getOrderedUnit()
|
|
2343
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2344
|
+
local unit = ____exports.Unit:of(handle)
|
|
2345
|
+
if unit.state == 1 then
|
|
2346
|
+
return unit, getIssuedOrderId()
|
|
2347
|
+
end
|
|
2159
2348
|
end
|
|
2160
2349
|
return IgnoreEvent
|
|
2161
2350
|
end
|
|
@@ -2177,7 +2366,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2366
|
)
|
|
2178
2367
|
Unit.onDamaging = (function()
|
|
2179
2368
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2369
|
local trigger = CreateTrigger()
|
|
2182
2370
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2371
|
TriggerAddCondition(
|
|
@@ -2276,7 +2464,6 @@ end)()
|
|
|
2276
2464
|
Unit.onDamage = __TS__New(
|
|
2277
2465
|
InitializingEvent,
|
|
2278
2466
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2467
|
local trigger = CreateTrigger()
|
|
2281
2468
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2469
|
TriggerAddCondition(
|
|
@@ -2292,6 +2479,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2479
|
damageType = BlzGetEventDamageType(),
|
|
2293
2480
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2481
|
isAttack = BlzGetEventIsAttack(),
|
|
2482
|
+
originalAmount = GetEventDamage(),
|
|
2295
2483
|
preventDeath = damageEventPreventDeath
|
|
2296
2484
|
}
|
|
2297
2485
|
local evData = setmetatable(
|
|
@@ -2308,7 +2496,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2496
|
invoke(event, source, target, evData)
|
|
2309
2497
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2498
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2499
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2312
2500
|
BlzSetUnitMaxHP(
|
|
2313
2501
|
target.handle,
|
|
2314
2502
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2510,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2510
|
evData[0],
|
|
2323
2511
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2512
|
)
|
|
2325
|
-
target[
|
|
2513
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2326
2514
|
SetWidgetLife(
|
|
2327
2515
|
target.handle,
|
|
2328
2516
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,32 +2530,91 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2530
|
DestroyTrigger(trigger)
|
|
2343
2531
|
end
|
|
2344
2532
|
)
|
|
2345
|
-
Unit.
|
|
2533
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2534
|
____exports.UnitTriggerEvent,
|
|
2347
2535
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2536
|
function()
|
|
2349
2537
|
local unit = getTriggerUnit()
|
|
2350
|
-
|
|
2351
|
-
|
|
2538
|
+
local item = getManipulatedItem()
|
|
2539
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2540
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2352
2541
|
end
|
|
2353
2542
|
return IgnoreEvent
|
|
2354
2543
|
end
|
|
2355
2544
|
)
|
|
2356
|
-
Unit.
|
|
2545
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2546
|
____exports.UnitTriggerEvent,
|
|
2358
2547
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2548
|
function()
|
|
2360
2549
|
local unit = getTriggerUnit()
|
|
2361
|
-
|
|
2362
|
-
|
|
2550
|
+
local item = getManipulatedItem()
|
|
2551
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2552
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2363
2553
|
end
|
|
2364
2554
|
return IgnoreEvent
|
|
2365
2555
|
end
|
|
2366
2556
|
)
|
|
2367
|
-
Unit.
|
|
2557
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2558
|
____exports.UnitTriggerEvent,
|
|
2369
2559
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function()
|
|
2560
|
+
function()
|
|
2561
|
+
local unit = getTriggerUnit()
|
|
2562
|
+
local item = getManipulatedItem()
|
|
2563
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2564
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2565
|
+
end
|
|
2566
|
+
return IgnoreEvent
|
|
2567
|
+
end
|
|
2568
|
+
)
|
|
2569
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2570
|
+
____exports.UnitTriggerEvent,
|
|
2571
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2572
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2573
|
+
)
|
|
2574
|
+
__TS__ObjectDefineProperty(
|
|
2575
|
+
Unit,
|
|
2576
|
+
"itemUseOrderEvent",
|
|
2577
|
+
{get = function(self)
|
|
2578
|
+
local event = __TS__New(Event)
|
|
2579
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2580
|
+
local slot = order - orderId("useslot0")
|
|
2581
|
+
local function listener(unit)
|
|
2582
|
+
local item = unit.items[slot + 1]
|
|
2583
|
+
if item ~= nil then
|
|
2584
|
+
invoke(event, unit, item)
|
|
2585
|
+
end
|
|
2586
|
+
end
|
|
2587
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2588
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2589
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2590
|
+
end
|
|
2591
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2592
|
+
return event
|
|
2593
|
+
end}
|
|
2594
|
+
)
|
|
2595
|
+
__TS__ObjectDefineProperty(
|
|
2596
|
+
Unit,
|
|
2597
|
+
"itemMoveOrderEvent",
|
|
2598
|
+
{get = function(self)
|
|
2599
|
+
local event = __TS__New(Event)
|
|
2600
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2601
|
+
local slotTo = order - orderId("moveslot0")
|
|
2602
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2603
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2604
|
+
if slotFrom ~= nil then
|
|
2605
|
+
invoke(
|
|
2606
|
+
event,
|
|
2607
|
+
unit,
|
|
2608
|
+
item,
|
|
2609
|
+
slotFrom,
|
|
2610
|
+
slotTo
|
|
2611
|
+
)
|
|
2612
|
+
end
|
|
2613
|
+
end)
|
|
2614
|
+
end
|
|
2615
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2616
|
+
return event
|
|
2617
|
+
end}
|
|
2371
2618
|
)
|
|
2372
2619
|
__TS__ObjectDefineProperty(
|
|
2373
2620
|
Unit,
|