warscript 0.0.1-dev.c8d6bc0 → 0.0.1-dev.c8f98de
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 +13 -3
- package/core/types/effect.lua +116 -17
- 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 +1 -0
- package/core/types/sound.lua +32 -2
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -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/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/damage.d.ts +33 -11
- package/engine/behaviour/ability/damage.lua +89 -31
- 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 +22 -3
- package/engine/behaviour/ability.lua +134 -13
- 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 +97 -40
- package/engine/buff.lua +431 -209
- 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/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 +59 -16
- package/engine/internal/unit.lua +373 -132
- 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 +0 -1
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- 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/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +21 -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/curse.lua +2 -2
- 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/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/phoenix-morph.lua +4 -4
- 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.d.ts +6 -7
- package/engine/object-data/entry/ability-type.lua +24 -27
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +11 -35
- 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 +16 -0
- package/engine/object-data/entry/sound-preset.lua +36 -0
- package/engine/object-data/entry/unit-type.d.ts +29 -3
- package/engine/object-data/entry/unit-type.lua +284 -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 -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 +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,6 +51,8 @@ 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
|
|
@@ -72,6 +77,7 @@ local setUnitScale = SetUnitScale
|
|
|
72
77
|
local setUnitPosition = SetUnitPosition
|
|
73
78
|
local setUnitTimeScale = SetUnitTimeScale
|
|
74
79
|
local getHandleId = GetHandleId
|
|
80
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
75
81
|
local createUnit = CreateUnit
|
|
76
82
|
local killUnit = KillUnit
|
|
77
83
|
local setUnitExploded = SetUnitExploded
|
|
@@ -92,6 +98,10 @@ local isUnitInRangeXY = IsUnitInRangeXY
|
|
|
92
98
|
local isUnitInRange = IsUnitInRange
|
|
93
99
|
local setResourceAmount = SetResourceAmount
|
|
94
100
|
local getResourceAmount = GetResourceAmount
|
|
101
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
102
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
103
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
104
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
105
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
106
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
107
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -275,16 +285,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
285
|
end
|
|
276
286
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
287
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
288
|
return setmetatable(
|
|
280
|
-
|
|
289
|
+
{},
|
|
281
290
|
{
|
|
282
291
|
__index = function(self, id)
|
|
283
292
|
if type(id) ~= "number" then
|
|
284
293
|
return event[id]
|
|
285
294
|
end
|
|
286
295
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
296
|
event:addListener(function(...)
|
|
289
297
|
local id = idGetter(...)
|
|
290
298
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +330,6 @@ local function dispatchAbility(event)
|
|
|
322
330
|
return event[id]
|
|
323
331
|
end
|
|
324
332
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
333
|
event:addListener(function(unit, ability, ...)
|
|
327
334
|
local dispatched = rawget(self, ability.typeId)
|
|
328
335
|
if dispatched ~= nil then
|
|
@@ -387,51 +394,158 @@ local getters = {
|
|
|
387
394
|
return BlzGetUnitArmor(unit)
|
|
388
395
|
end
|
|
389
396
|
}
|
|
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
|
-
|
|
397
|
+
____exports.UnitWeapon = __TS__Class()
|
|
398
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
399
|
+
UnitWeapon.name = "UnitWeapon"
|
|
400
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
401
|
+
self.unit = unit
|
|
402
|
+
self.index = index
|
|
403
|
+
end
|
|
404
|
+
__TS__SetDescriptor(
|
|
405
|
+
UnitWeapon.prototype,
|
|
406
|
+
"cooldown",
|
|
407
|
+
{
|
|
408
|
+
get = function(self)
|
|
409
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
410
|
+
end,
|
|
411
|
+
set = function(self, cooldown)
|
|
412
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
413
|
+
end
|
|
414
|
+
},
|
|
415
|
+
true
|
|
416
|
+
)
|
|
417
|
+
__TS__SetDescriptor(
|
|
418
|
+
UnitWeapon.prototype,
|
|
419
|
+
"damage",
|
|
420
|
+
{
|
|
421
|
+
get = function(self)
|
|
422
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
423
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
424
|
+
return {minimumDamage, maximumDamage}
|
|
425
|
+
end,
|
|
426
|
+
set = function(self, ____bindingPattern0)
|
|
427
|
+
local maximumDamage
|
|
428
|
+
local minimumDamage
|
|
429
|
+
minimumDamage = ____bindingPattern0[1]
|
|
430
|
+
maximumDamage = ____bindingPattern0[2]
|
|
431
|
+
self.damageBase = minimumDamage - 1
|
|
432
|
+
self.damageDiceCount = 1
|
|
433
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
434
|
+
end
|
|
435
|
+
},
|
|
436
|
+
true
|
|
437
|
+
)
|
|
438
|
+
__TS__SetDescriptor(
|
|
439
|
+
UnitWeapon.prototype,
|
|
440
|
+
"damageBase",
|
|
441
|
+
{
|
|
442
|
+
get = function(self)
|
|
443
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
444
|
+
end,
|
|
445
|
+
set = function(self, damageBase)
|
|
446
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
447
|
+
end
|
|
448
|
+
},
|
|
449
|
+
true
|
|
450
|
+
)
|
|
451
|
+
__TS__SetDescriptor(
|
|
452
|
+
UnitWeapon.prototype,
|
|
453
|
+
"damageDiceCount",
|
|
454
|
+
{
|
|
455
|
+
get = function(self)
|
|
456
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
457
|
+
end,
|
|
458
|
+
set = function(self, damageDiceCount)
|
|
459
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
460
|
+
end
|
|
461
|
+
},
|
|
462
|
+
true
|
|
463
|
+
)
|
|
464
|
+
__TS__SetDescriptor(
|
|
465
|
+
UnitWeapon.prototype,
|
|
466
|
+
"damageDiceSideCount",
|
|
467
|
+
{
|
|
468
|
+
get = function(self)
|
|
469
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
470
|
+
end,
|
|
471
|
+
set = function(self, damageDiceSideCount)
|
|
472
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
473
|
+
end
|
|
474
|
+
},
|
|
475
|
+
true
|
|
476
|
+
)
|
|
477
|
+
__TS__SetDescriptor(
|
|
478
|
+
UnitWeapon.prototype,
|
|
479
|
+
"range",
|
|
480
|
+
{
|
|
481
|
+
get = function(self)
|
|
482
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
483
|
+
end,
|
|
484
|
+
set = function(self, range)
|
|
485
|
+
local handle = self.unit.handle
|
|
486
|
+
local index = self.index
|
|
487
|
+
setUnitWeaponRealField(
|
|
488
|
+
handle,
|
|
489
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
490
|
+
index + 1,
|
|
491
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
492
|
+
)
|
|
493
|
+
end
|
|
494
|
+
},
|
|
495
|
+
true
|
|
496
|
+
)
|
|
497
|
+
__TS__SetDescriptor(
|
|
498
|
+
UnitWeapon.prototype,
|
|
499
|
+
"impactDelay",
|
|
500
|
+
{
|
|
501
|
+
get = function(self)
|
|
502
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
503
|
+
end,
|
|
504
|
+
set = function(self, impactDelay)
|
|
505
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
506
|
+
end
|
|
507
|
+
},
|
|
508
|
+
true
|
|
509
|
+
)
|
|
510
|
+
__TS__SetDescriptor(
|
|
511
|
+
UnitWeapon.prototype,
|
|
512
|
+
"missileArc",
|
|
513
|
+
{
|
|
514
|
+
get = function(self)
|
|
515
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
516
|
+
end,
|
|
517
|
+
set = function(self, missileArc)
|
|
518
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
519
|
+
end
|
|
520
|
+
},
|
|
521
|
+
true
|
|
522
|
+
)
|
|
523
|
+
__TS__SetDescriptor(
|
|
524
|
+
UnitWeapon.prototype,
|
|
525
|
+
"missileModelPath",
|
|
526
|
+
{
|
|
527
|
+
get = function(self)
|
|
528
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
529
|
+
end,
|
|
530
|
+
set = function(self, missileModelPath)
|
|
531
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
532
|
+
end
|
|
533
|
+
},
|
|
534
|
+
true
|
|
535
|
+
)
|
|
536
|
+
__TS__SetDescriptor(
|
|
537
|
+
UnitWeapon.prototype,
|
|
538
|
+
"missileSpeed",
|
|
539
|
+
{
|
|
540
|
+
get = function(self)
|
|
541
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
542
|
+
end,
|
|
543
|
+
set = function(self, missileSpeed)
|
|
544
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
545
|
+
end
|
|
546
|
+
},
|
|
547
|
+
true
|
|
548
|
+
)
|
|
435
549
|
local unitInventorySize = UnitInventorySize
|
|
436
550
|
local unitItemInSlot = UnitItemInSlot
|
|
437
551
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -442,8 +556,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
556
|
local unitAddAbility = UnitAddAbility
|
|
443
557
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
558
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
559
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
560
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
561
|
if ability == nil then
|
|
@@ -453,17 +565,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
453
565
|
____exports.Unit:of(unit)
|
|
454
566
|
)
|
|
455
567
|
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
568
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
468
569
|
local item = unitItemInSlot(unit, i)
|
|
469
570
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -520,12 +621,34 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
621
|
ShowUnit(dummy, false)
|
|
521
622
|
dummies[player] = dummy
|
|
522
623
|
end
|
|
624
|
+
local function delayHealthChecksCallback(unit)
|
|
625
|
+
local counter = (unit[103] or 0) - 1
|
|
626
|
+
if counter ~= 0 then
|
|
627
|
+
unit[103] = counter
|
|
628
|
+
return
|
|
629
|
+
end
|
|
630
|
+
unit[103] = nil
|
|
631
|
+
local healthBonus = unit[104]
|
|
632
|
+
if healthBonus ~= nil then
|
|
633
|
+
unit[104] = nil
|
|
634
|
+
local handle = unit.handle
|
|
635
|
+
BlzSetUnitMaxHP(
|
|
636
|
+
handle,
|
|
637
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
638
|
+
)
|
|
639
|
+
end
|
|
640
|
+
end
|
|
641
|
+
local nextSyncId = 1
|
|
642
|
+
local unitBySyncId = setmetatable({}, {__mode = "k"})
|
|
523
643
|
____exports.Unit = __TS__Class()
|
|
524
644
|
local Unit = ____exports.Unit
|
|
525
645
|
Unit.name = "Unit"
|
|
526
646
|
__TS__ClassExtends(Unit, Handle)
|
|
527
647
|
function Unit.prototype.____constructor(self, handle)
|
|
528
648
|
Handle.prototype.____constructor(self, handle)
|
|
649
|
+
local ____nextSyncId_0 = nextSyncId
|
|
650
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
651
|
+
self.syncId = ____nextSyncId_0
|
|
529
652
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
530
653
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
531
654
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -538,6 +661,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
538
661
|
fourCC("Amrf")
|
|
539
662
|
))
|
|
540
663
|
end
|
|
664
|
+
unitBySyncId[self.syncId] = self
|
|
541
665
|
local ____ = self.abilities
|
|
542
666
|
end
|
|
543
667
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -623,8 +747,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
623
747
|
end}
|
|
624
748
|
end
|
|
625
749
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
626
|
-
local
|
|
627
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
750
|
+
local ____combatClassification_1 = combatClassification
|
|
751
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_1 == ____combatClassification_1
|
|
628
752
|
end
|
|
629
753
|
function Unit.prototype.addClassification(self, classification)
|
|
630
754
|
return unitAddType(self.handle, classification)
|
|
@@ -642,13 +766,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
642
766
|
return isUnitInvisible(self.handle, player.handle)
|
|
643
767
|
end
|
|
644
768
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
645
|
-
local
|
|
769
|
+
local ____temp_2
|
|
646
770
|
if type(x) == "number" then
|
|
647
|
-
|
|
771
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
648
772
|
else
|
|
649
|
-
|
|
773
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
650
774
|
end
|
|
651
|
-
return
|
|
775
|
+
return ____temp_2
|
|
652
776
|
end
|
|
653
777
|
function Unit.prototype.isAllyOf(self, unit)
|
|
654
778
|
return isUnitAlly(
|
|
@@ -674,6 +798,10 @@ end
|
|
|
674
798
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
799
|
queueUnitAnimation(self.handle, animation)
|
|
676
800
|
end
|
|
801
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
802
|
+
self[103] = (self[103] or 0) + 1
|
|
803
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
804
|
+
end
|
|
677
805
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
806
|
setUnitPosition(self.handle, x, y)
|
|
679
807
|
end
|
|
@@ -687,8 +815,15 @@ end
|
|
|
687
815
|
function Unit.prototype.kill(self)
|
|
688
816
|
killUnit(self.handle)
|
|
689
817
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
818
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
819
|
+
local ____ReviveHero_5 = ReviveHero
|
|
820
|
+
local ____array_4 = __TS__SparseArrayNew(self.handle, x, y)
|
|
821
|
+
local ____doEffect_3 = doEffect
|
|
822
|
+
if ____doEffect_3 == nil then
|
|
823
|
+
____doEffect_3 = false
|
|
824
|
+
end
|
|
825
|
+
__TS__SparseArrayPush(____array_4, ____doEffect_3)
|
|
826
|
+
____ReviveHero_5(__TS__SparseArraySpread(____array_4))
|
|
692
827
|
end
|
|
693
828
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
829
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -728,7 +863,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
863
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
864
|
end
|
|
730
865
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
866
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
867
|
end
|
|
733
868
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
869
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -784,6 +919,9 @@ end
|
|
|
784
919
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
920
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
921
|
end
|
|
922
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
923
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
924
|
+
end
|
|
787
925
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
926
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
927
|
end
|
|
@@ -794,8 +932,15 @@ function Unit.prototype.interruptAttack(self)
|
|
|
794
932
|
unitInterruptAttack(self.handle)
|
|
795
933
|
end
|
|
796
934
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
797
|
-
|
|
798
|
-
unitDisableAbility(
|
|
935
|
+
local handle = self.handle
|
|
936
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
937
|
+
Timer:run(
|
|
938
|
+
unitDisableAbility,
|
|
939
|
+
handle,
|
|
940
|
+
abilityId,
|
|
941
|
+
false,
|
|
942
|
+
false
|
|
943
|
+
)
|
|
799
944
|
end
|
|
800
945
|
function Unit.prototype.getDistanceTo(self, target)
|
|
801
946
|
local handle = self.handle
|
|
@@ -855,18 +1000,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
855
1000
|
self:decrementStunCounter()
|
|
856
1001
|
end
|
|
857
1002
|
function Unit.prototype.incrementStunCounter(self)
|
|
858
|
-
local stunCounter = self[
|
|
859
|
-
if not self[
|
|
1003
|
+
local stunCounter = self[102] or 0
|
|
1004
|
+
if not self[101] or stunCounter >= 0 then
|
|
860
1005
|
BlzPauseUnitEx(self.handle, true)
|
|
861
1006
|
end
|
|
862
|
-
self[
|
|
1007
|
+
self[102] = stunCounter + 1
|
|
863
1008
|
end
|
|
864
1009
|
function Unit.prototype.decrementStunCounter(self)
|
|
865
|
-
local stunCounter = self[
|
|
866
|
-
if not self[
|
|
1010
|
+
local stunCounter = self[102] or 0
|
|
1011
|
+
if not self[101] or stunCounter >= 1 then
|
|
867
1012
|
BlzPauseUnitEx(self.handle, false)
|
|
868
1013
|
end
|
|
869
|
-
self[
|
|
1014
|
+
self[102] = stunCounter - 1
|
|
870
1015
|
end
|
|
871
1016
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
872
1017
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -968,8 +1113,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
968
1113
|
)
|
|
969
1114
|
return targetCollection
|
|
970
1115
|
end
|
|
971
|
-
function Unit.getSelectionOf(self, player)
|
|
972
|
-
|
|
1116
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1117
|
+
if target == nil then
|
|
1118
|
+
target = {}
|
|
1119
|
+
end
|
|
1120
|
+
targetCollection = target
|
|
973
1121
|
targetCollectionNextIndex = 1
|
|
974
1122
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
975
1123
|
return targetCollection
|
|
@@ -991,6 +1139,9 @@ end
|
|
|
991
1139
|
function Unit.prototype.__tostring(self)
|
|
992
1140
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
993
1141
|
end
|
|
1142
|
+
function Unit.getBySyncId(self, syncId)
|
|
1143
|
+
return unitBySyncId[syncId]
|
|
1144
|
+
end
|
|
994
1145
|
__TS__SetDescriptor(
|
|
995
1146
|
Unit.prototype,
|
|
996
1147
|
"_deltas",
|
|
@@ -1054,6 +1205,14 @@ __TS__SetDescriptor(
|
|
|
1054
1205
|
end},
|
|
1055
1206
|
true
|
|
1056
1207
|
)
|
|
1208
|
+
__TS__SetDescriptor(
|
|
1209
|
+
Unit.prototype,
|
|
1210
|
+
"isStunned",
|
|
1211
|
+
{get = function(self)
|
|
1212
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1213
|
+
end},
|
|
1214
|
+
true
|
|
1215
|
+
)
|
|
1057
1216
|
__TS__SetDescriptor(
|
|
1058
1217
|
Unit.prototype,
|
|
1059
1218
|
"combatClassifications",
|
|
@@ -1071,12 +1230,27 @@ __TS__SetDescriptor(
|
|
|
1071
1230
|
Unit.prototype,
|
|
1072
1231
|
"weapons",
|
|
1073
1232
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1233
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1234
|
+
end},
|
|
1235
|
+
true
|
|
1236
|
+
)
|
|
1237
|
+
__TS__SetDescriptor(
|
|
1238
|
+
Unit.prototype,
|
|
1239
|
+
"firstWeapon",
|
|
1240
|
+
{get = function(self)
|
|
1241
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1242
|
+
rawset(self, "firstWeapon", weapon)
|
|
1243
|
+
return weapon
|
|
1244
|
+
end},
|
|
1245
|
+
true
|
|
1246
|
+
)
|
|
1247
|
+
__TS__SetDescriptor(
|
|
1248
|
+
Unit.prototype,
|
|
1249
|
+
"secondWeapon",
|
|
1250
|
+
{get = function(self)
|
|
1251
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1252
|
+
rawset(self, "secondWeapon", weapon)
|
|
1253
|
+
return weapon
|
|
1080
1254
|
end},
|
|
1081
1255
|
true
|
|
1082
1256
|
)
|
|
@@ -1233,17 +1407,17 @@ __TS__SetDescriptor(
|
|
|
1233
1407
|
"isTeamGlowVisible",
|
|
1234
1408
|
{
|
|
1235
1409
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1410
|
+
return not self[106]
|
|
1237
1411
|
end,
|
|
1238
1412
|
set = function(self, isTeamGlowVisible)
|
|
1239
1413
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1414
|
+
local ____temp_6
|
|
1241
1415
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1416
|
+
____temp_6 = true
|
|
1243
1417
|
else
|
|
1244
|
-
|
|
1418
|
+
____temp_6 = nil
|
|
1245
1419
|
end
|
|
1246
|
-
self[
|
|
1420
|
+
self[106] = ____temp_6
|
|
1247
1421
|
end
|
|
1248
1422
|
},
|
|
1249
1423
|
true
|
|
@@ -1253,7 +1427,7 @@ __TS__SetDescriptor(
|
|
|
1253
1427
|
"color",
|
|
1254
1428
|
{set = function(self, color)
|
|
1255
1429
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1430
|
+
if self[106] then
|
|
1257
1431
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1432
|
end
|
|
1259
1433
|
end},
|
|
@@ -1277,10 +1451,14 @@ __TS__SetDescriptor(
|
|
|
1277
1451
|
"maxHealth",
|
|
1278
1452
|
{
|
|
1279
1453
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1454
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1281
1455
|
end,
|
|
1282
1456
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1457
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1458
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1459
|
+
maxHealth = 1
|
|
1460
|
+
end
|
|
1461
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1284
1462
|
end
|
|
1285
1463
|
},
|
|
1286
1464
|
true
|
|
@@ -1322,10 +1500,10 @@ __TS__SetDescriptor(
|
|
|
1322
1500
|
"health",
|
|
1323
1501
|
{
|
|
1324
1502
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1503
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1326
1504
|
end,
|
|
1327
1505
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1506
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1329
1507
|
end
|
|
1330
1508
|
},
|
|
1331
1509
|
true
|
|
@@ -1536,17 +1714,17 @@ __TS__SetDescriptor(
|
|
|
1536
1714
|
set = function(self, isPaused)
|
|
1537
1715
|
local handle = self.handle
|
|
1538
1716
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
for _ = self[
|
|
1717
|
+
self[101] = true
|
|
1718
|
+
for _ = self[102] or 0, -1 do
|
|
1541
1719
|
BlzPauseUnitEx(handle, true)
|
|
1542
1720
|
end
|
|
1543
1721
|
PauseUnit(handle, true)
|
|
1544
1722
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1723
|
PauseUnit(handle, false)
|
|
1546
|
-
for _ = self[
|
|
1724
|
+
for _ = self[102] or 0, -1 do
|
|
1547
1725
|
BlzPauseUnitEx(handle, false)
|
|
1548
1726
|
end
|
|
1549
|
-
self[
|
|
1727
|
+
self[101] = nil
|
|
1550
1728
|
end
|
|
1551
1729
|
end
|
|
1552
1730
|
},
|
|
@@ -1903,7 +2081,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2081
|
Unit.onResurrect = __TS__New(
|
|
1904
2082
|
InitializingEvent,
|
|
1905
2083
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2084
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2085
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2086
|
dead[unit] = true
|
|
@@ -1919,10 +2096,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2096
|
Unit.morphEvent = __TS__New(
|
|
1920
2097
|
InitializingEvent,
|
|
1921
2098
|
function(event)
|
|
2099
|
+
local function ifNotLeft(unit)
|
|
2100
|
+
local handle = unit.handle
|
|
2101
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2102
|
+
invoke(event, unit)
|
|
2103
|
+
end
|
|
2104
|
+
end
|
|
1922
2105
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2106
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2107
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2108
|
end
|
|
1927
2109
|
end)
|
|
1928
2110
|
end
|
|
@@ -1960,27 +2142,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2142
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2143
|
InitializingEvent,
|
|
1962
2144
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2145
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2146
|
+
local ____GetSpellTargetUnit_result_9
|
|
1966
2147
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2148
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2149
|
else
|
|
1969
|
-
local
|
|
2150
|
+
local ____GetSpellTargetItem_result_8
|
|
1970
2151
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2152
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1972
2153
|
else
|
|
1973
|
-
local
|
|
2154
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1974
2155
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2156
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2157
|
else
|
|
1977
|
-
|
|
2158
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
1978
2159
|
end
|
|
1979
|
-
|
|
2160
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
1980
2161
|
end
|
|
1981
|
-
|
|
2162
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
1982
2163
|
end
|
|
1983
|
-
local target =
|
|
2164
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
1984
2165
|
if target then
|
|
1985
2166
|
invoke(event, unit, id, target)
|
|
1986
2167
|
end
|
|
@@ -2152,10 +2333,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2152
2333
|
____exports.UnitTriggerEvent,
|
|
2153
2334
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2154
2335
|
function()
|
|
2155
|
-
local
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2336
|
+
local handle = getOrderedUnit()
|
|
2337
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2338
|
+
local unit = ____exports.Unit:of(handle)
|
|
2339
|
+
if unit.state == 1 then
|
|
2340
|
+
return unit, getIssuedOrderId()
|
|
2341
|
+
end
|
|
2159
2342
|
end
|
|
2160
2343
|
return IgnoreEvent
|
|
2161
2344
|
end
|
|
@@ -2177,7 +2360,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2360
|
)
|
|
2178
2361
|
Unit.onDamaging = (function()
|
|
2179
2362
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2363
|
local trigger = CreateTrigger()
|
|
2182
2364
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2365
|
TriggerAddCondition(
|
|
@@ -2276,7 +2458,6 @@ end)()
|
|
|
2276
2458
|
Unit.onDamage = __TS__New(
|
|
2277
2459
|
InitializingEvent,
|
|
2278
2460
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2461
|
local trigger = CreateTrigger()
|
|
2281
2462
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2463
|
TriggerAddCondition(
|
|
@@ -2292,6 +2473,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2473
|
damageType = BlzGetEventDamageType(),
|
|
2293
2474
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2475
|
isAttack = BlzGetEventIsAttack(),
|
|
2476
|
+
originalAmount = GetEventDamage(),
|
|
2295
2477
|
preventDeath = damageEventPreventDeath
|
|
2296
2478
|
}
|
|
2297
2479
|
local evData = setmetatable(
|
|
@@ -2308,7 +2490,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2490
|
invoke(event, source, target, evData)
|
|
2309
2491
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2492
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2493
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2312
2494
|
BlzSetUnitMaxHP(
|
|
2313
2495
|
target.handle,
|
|
2314
2496
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2504,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2504
|
evData[0],
|
|
2323
2505
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2506
|
)
|
|
2325
|
-
target[
|
|
2507
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2326
2508
|
SetWidgetLife(
|
|
2327
2509
|
target.handle,
|
|
2328
2510
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,32 +2524,91 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2524
|
DestroyTrigger(trigger)
|
|
2343
2525
|
end
|
|
2344
2526
|
)
|
|
2345
|
-
Unit.
|
|
2527
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2528
|
____exports.UnitTriggerEvent,
|
|
2347
2529
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2530
|
function()
|
|
2349
2531
|
local unit = getTriggerUnit()
|
|
2350
|
-
|
|
2351
|
-
|
|
2532
|
+
local item = getManipulatedItem()
|
|
2533
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2534
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2352
2535
|
end
|
|
2353
2536
|
return IgnoreEvent
|
|
2354
2537
|
end
|
|
2355
2538
|
)
|
|
2356
|
-
Unit.
|
|
2539
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2540
|
____exports.UnitTriggerEvent,
|
|
2358
2541
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2542
|
function()
|
|
2360
2543
|
local unit = getTriggerUnit()
|
|
2361
|
-
|
|
2362
|
-
|
|
2544
|
+
local item = getManipulatedItem()
|
|
2545
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2546
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2363
2547
|
end
|
|
2364
2548
|
return IgnoreEvent
|
|
2365
2549
|
end
|
|
2366
2550
|
)
|
|
2367
|
-
Unit.
|
|
2551
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2552
|
____exports.UnitTriggerEvent,
|
|
2369
2553
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function()
|
|
2554
|
+
function()
|
|
2555
|
+
local unit = getTriggerUnit()
|
|
2556
|
+
local item = getManipulatedItem()
|
|
2557
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2558
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2559
|
+
end
|
|
2560
|
+
return IgnoreEvent
|
|
2561
|
+
end
|
|
2562
|
+
)
|
|
2563
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2564
|
+
____exports.UnitTriggerEvent,
|
|
2565
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2566
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2567
|
+
)
|
|
2568
|
+
__TS__ObjectDefineProperty(
|
|
2569
|
+
Unit,
|
|
2570
|
+
"itemUseOrderEvent",
|
|
2571
|
+
{get = function(self)
|
|
2572
|
+
local event = __TS__New(Event)
|
|
2573
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2574
|
+
local slot = order - orderId("useslot0")
|
|
2575
|
+
local function listener(unit)
|
|
2576
|
+
local item = unit.items[slot + 1]
|
|
2577
|
+
if item ~= nil then
|
|
2578
|
+
invoke(event, unit, item)
|
|
2579
|
+
end
|
|
2580
|
+
end
|
|
2581
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2582
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2583
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2584
|
+
end
|
|
2585
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2586
|
+
return event
|
|
2587
|
+
end}
|
|
2588
|
+
)
|
|
2589
|
+
__TS__ObjectDefineProperty(
|
|
2590
|
+
Unit,
|
|
2591
|
+
"itemMoveOrderEvent",
|
|
2592
|
+
{get = function(self)
|
|
2593
|
+
local event = __TS__New(Event)
|
|
2594
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2595
|
+
local slotTo = order - orderId("moveslot0")
|
|
2596
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2597
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2598
|
+
if slotFrom ~= nil then
|
|
2599
|
+
invoke(
|
|
2600
|
+
event,
|
|
2601
|
+
unit,
|
|
2602
|
+
item,
|
|
2603
|
+
slotFrom,
|
|
2604
|
+
slotTo
|
|
2605
|
+
)
|
|
2606
|
+
end
|
|
2607
|
+
end)
|
|
2608
|
+
end
|
|
2609
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2610
|
+
return event
|
|
2611
|
+
end}
|
|
2371
2612
|
)
|
|
2372
2613
|
__TS__ObjectDefineProperty(
|
|
2373
2614
|
Unit,
|