warscript 0.0.1-dev.59cd31d → 0.0.1-dev.5e8f6c0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +12 -0
- package/attributes.lua +16 -0
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/core/types/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/handle.d.ts +2 -1
- package/core/types/handle.lua +5 -0
- package/core/types/image.d.ts +0 -1
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/unit.lua +8 -0
- package/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 +3 -5
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +5 -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 +16 -2
- package/engine/behaviour/ability.lua +88 -12
- 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 +68 -21
- package/engine/buff.lua +276 -90
- 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 +82 -76
- package/engine/internal/item/ability.lua +90 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/unit/ability.d.ts +10 -1
- package/engine/internal/unit/ability.lua +36 -14
- package/engine/internal/unit/bonus.d.ts +9 -8
- package/engine/internal/unit/bonus.lua +6 -1
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +79 -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 +58 -16
- package/engine/internal/unit.lua +355 -128
- package/engine/internal/utility.lua +12 -0
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -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/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- package/engine/object-data/entry/ability-type.d.ts +0 -1
- package/engine/object-data/entry/ability-type.lua +8 -12
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +0 -1
- package/engine/object-data/entry/destructible-type.d.ts +0 -1
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +14 -1
- package/engine/object-data/entry/item-type.lua +91 -0
- package/engine/object-data/entry/lightning-type.d.ts +0 -1
- package/engine/object-data/entry/unit-type.d.ts +42 -2
- package/engine/object-data/entry/unit-type.lua +378 -50
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +0 -1
- package/engine/object-data/entry.d.ts +2 -3
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +21 -1
- package/engine/object-field/ability.lua +51 -1
- package/engine/object-field.d.ts +0 -1
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -0
- package/engine/standard/entries/unit-type.d.ts +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 +2 -0
- package/engine/unit.lua +11 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/global/vec2.lua +1 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -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/types.d.ts +3 -2
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
package/engine/internal/unit.lua
CHANGED
|
@@ -5,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
|
|
@@ -92,6 +95,10 @@ local isUnitInRangeXY = IsUnitInRangeXY
|
|
|
92
95
|
local isUnitInRange = IsUnitInRange
|
|
93
96
|
local setResourceAmount = SetResourceAmount
|
|
94
97
|
local getResourceAmount = GetResourceAmount
|
|
98
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
99
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
100
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
101
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
102
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
103
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
104
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -275,16 +282,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
282
|
end
|
|
276
283
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
284
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
285
|
return setmetatable(
|
|
280
|
-
|
|
286
|
+
{},
|
|
281
287
|
{
|
|
282
288
|
__index = function(self, id)
|
|
283
289
|
if type(id) ~= "number" then
|
|
284
290
|
return event[id]
|
|
285
291
|
end
|
|
286
292
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
293
|
event:addListener(function(...)
|
|
289
294
|
local id = idGetter(...)
|
|
290
295
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +327,6 @@ local function dispatchAbility(event)
|
|
|
322
327
|
return event[id]
|
|
323
328
|
end
|
|
324
329
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
330
|
event:addListener(function(unit, ability, ...)
|
|
327
331
|
local dispatched = rawget(self, ability.typeId)
|
|
328
332
|
if dispatched ~= nil then
|
|
@@ -387,51 +391,158 @@ local getters = {
|
|
|
387
391
|
return BlzGetUnitArmor(unit)
|
|
388
392
|
end
|
|
389
393
|
}
|
|
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
|
-
|
|
394
|
+
____exports.UnitWeapon = __TS__Class()
|
|
395
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
396
|
+
UnitWeapon.name = "UnitWeapon"
|
|
397
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
398
|
+
self.unit = unit
|
|
399
|
+
self.index = index
|
|
400
|
+
end
|
|
401
|
+
__TS__SetDescriptor(
|
|
402
|
+
UnitWeapon.prototype,
|
|
403
|
+
"cooldown",
|
|
404
|
+
{
|
|
405
|
+
get = function(self)
|
|
406
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
407
|
+
end,
|
|
408
|
+
set = function(self, cooldown)
|
|
409
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
410
|
+
end
|
|
411
|
+
},
|
|
412
|
+
true
|
|
413
|
+
)
|
|
414
|
+
__TS__SetDescriptor(
|
|
415
|
+
UnitWeapon.prototype,
|
|
416
|
+
"damage",
|
|
417
|
+
{
|
|
418
|
+
get = function(self)
|
|
419
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
420
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
421
|
+
return {minimumDamage, maximumDamage}
|
|
422
|
+
end,
|
|
423
|
+
set = function(self, ____bindingPattern0)
|
|
424
|
+
local maximumDamage
|
|
425
|
+
local minimumDamage
|
|
426
|
+
minimumDamage = ____bindingPattern0[1]
|
|
427
|
+
maximumDamage = ____bindingPattern0[2]
|
|
428
|
+
self.damageBase = minimumDamage - 1
|
|
429
|
+
self.damageDiceCount = 1
|
|
430
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
435
|
+
__TS__SetDescriptor(
|
|
436
|
+
UnitWeapon.prototype,
|
|
437
|
+
"damageBase",
|
|
438
|
+
{
|
|
439
|
+
get = function(self)
|
|
440
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
441
|
+
end,
|
|
442
|
+
set = function(self, damageBase)
|
|
443
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
444
|
+
end
|
|
445
|
+
},
|
|
446
|
+
true
|
|
447
|
+
)
|
|
448
|
+
__TS__SetDescriptor(
|
|
449
|
+
UnitWeapon.prototype,
|
|
450
|
+
"damageDiceCount",
|
|
451
|
+
{
|
|
452
|
+
get = function(self)
|
|
453
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
454
|
+
end,
|
|
455
|
+
set = function(self, damageDiceCount)
|
|
456
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
457
|
+
end
|
|
458
|
+
},
|
|
459
|
+
true
|
|
460
|
+
)
|
|
461
|
+
__TS__SetDescriptor(
|
|
462
|
+
UnitWeapon.prototype,
|
|
463
|
+
"damageDiceSideCount",
|
|
464
|
+
{
|
|
465
|
+
get = function(self)
|
|
466
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
467
|
+
end,
|
|
468
|
+
set = function(self, damageDiceSideCount)
|
|
469
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
470
|
+
end
|
|
471
|
+
},
|
|
472
|
+
true
|
|
473
|
+
)
|
|
474
|
+
__TS__SetDescriptor(
|
|
475
|
+
UnitWeapon.prototype,
|
|
476
|
+
"range",
|
|
477
|
+
{
|
|
478
|
+
get = function(self)
|
|
479
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
480
|
+
end,
|
|
481
|
+
set = function(self, range)
|
|
482
|
+
local handle = self.unit.handle
|
|
483
|
+
local index = self.index
|
|
484
|
+
setUnitWeaponRealField(
|
|
485
|
+
handle,
|
|
486
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
487
|
+
index + 1,
|
|
488
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
489
|
+
)
|
|
490
|
+
end
|
|
491
|
+
},
|
|
492
|
+
true
|
|
493
|
+
)
|
|
494
|
+
__TS__SetDescriptor(
|
|
495
|
+
UnitWeapon.prototype,
|
|
496
|
+
"impactDelay",
|
|
497
|
+
{
|
|
498
|
+
get = function(self)
|
|
499
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
500
|
+
end,
|
|
501
|
+
set = function(self, impactDelay)
|
|
502
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
503
|
+
end
|
|
504
|
+
},
|
|
505
|
+
true
|
|
506
|
+
)
|
|
507
|
+
__TS__SetDescriptor(
|
|
508
|
+
UnitWeapon.prototype,
|
|
509
|
+
"missileArc",
|
|
510
|
+
{
|
|
511
|
+
get = function(self)
|
|
512
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
513
|
+
end,
|
|
514
|
+
set = function(self, missileArc)
|
|
515
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
516
|
+
end
|
|
517
|
+
},
|
|
518
|
+
true
|
|
519
|
+
)
|
|
520
|
+
__TS__SetDescriptor(
|
|
521
|
+
UnitWeapon.prototype,
|
|
522
|
+
"missileModelPath",
|
|
523
|
+
{
|
|
524
|
+
get = function(self)
|
|
525
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
526
|
+
end,
|
|
527
|
+
set = function(self, missileModelPath)
|
|
528
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
529
|
+
end
|
|
530
|
+
},
|
|
531
|
+
true
|
|
532
|
+
)
|
|
533
|
+
__TS__SetDescriptor(
|
|
534
|
+
UnitWeapon.prototype,
|
|
535
|
+
"missileSpeed",
|
|
536
|
+
{
|
|
537
|
+
get = function(self)
|
|
538
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
539
|
+
end,
|
|
540
|
+
set = function(self, missileSpeed)
|
|
541
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
542
|
+
end
|
|
543
|
+
},
|
|
544
|
+
true
|
|
545
|
+
)
|
|
435
546
|
local unitInventorySize = UnitInventorySize
|
|
436
547
|
local unitItemInSlot = UnitItemInSlot
|
|
437
548
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -442,8 +553,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
553
|
local unitAddAbility = UnitAddAbility
|
|
443
554
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
555
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
556
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
557
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
558
|
if ability == nil then
|
|
@@ -453,17 +562,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
453
562
|
____exports.Unit:of(unit)
|
|
454
563
|
)
|
|
455
564
|
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
565
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
468
566
|
local item = unitItemInSlot(unit, i)
|
|
469
567
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -520,12 +618,34 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
618
|
ShowUnit(dummy, false)
|
|
521
619
|
dummies[player] = dummy
|
|
522
620
|
end
|
|
621
|
+
local function delayHealthChecksCallback(unit)
|
|
622
|
+
local counter = (unit[103] or 0) - 1
|
|
623
|
+
if counter ~= 0 then
|
|
624
|
+
unit[103] = counter
|
|
625
|
+
return
|
|
626
|
+
end
|
|
627
|
+
unit[103] = nil
|
|
628
|
+
local healthBonus = unit[104]
|
|
629
|
+
if healthBonus ~= nil then
|
|
630
|
+
unit[104] = nil
|
|
631
|
+
local handle = unit.handle
|
|
632
|
+
BlzSetUnitMaxHP(
|
|
633
|
+
handle,
|
|
634
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
635
|
+
)
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
local nextSyncId = 1
|
|
639
|
+
local unitBySyncId = setmetatable({}, {__mode = "k"})
|
|
523
640
|
____exports.Unit = __TS__Class()
|
|
524
641
|
local Unit = ____exports.Unit
|
|
525
642
|
Unit.name = "Unit"
|
|
526
643
|
__TS__ClassExtends(Unit, Handle)
|
|
527
644
|
function Unit.prototype.____constructor(self, handle)
|
|
528
645
|
Handle.prototype.____constructor(self, handle)
|
|
646
|
+
local ____nextSyncId_0 = nextSyncId
|
|
647
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
648
|
+
self.syncId = ____nextSyncId_0
|
|
529
649
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
530
650
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
531
651
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -538,6 +658,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
538
658
|
fourCC("Amrf")
|
|
539
659
|
))
|
|
540
660
|
end
|
|
661
|
+
unitBySyncId[self.syncId] = self
|
|
541
662
|
local ____ = self.abilities
|
|
542
663
|
end
|
|
543
664
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -623,8 +744,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
623
744
|
end}
|
|
624
745
|
end
|
|
625
746
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
626
|
-
local
|
|
627
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
747
|
+
local ____combatClassification_1 = combatClassification
|
|
748
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_1 == ____combatClassification_1
|
|
628
749
|
end
|
|
629
750
|
function Unit.prototype.addClassification(self, classification)
|
|
630
751
|
return unitAddType(self.handle, classification)
|
|
@@ -642,13 +763,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
642
763
|
return isUnitInvisible(self.handle, player.handle)
|
|
643
764
|
end
|
|
644
765
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
645
|
-
local
|
|
766
|
+
local ____temp_2
|
|
646
767
|
if type(x) == "number" then
|
|
647
|
-
|
|
768
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
648
769
|
else
|
|
649
|
-
|
|
770
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
650
771
|
end
|
|
651
|
-
return
|
|
772
|
+
return ____temp_2
|
|
652
773
|
end
|
|
653
774
|
function Unit.prototype.isAllyOf(self, unit)
|
|
654
775
|
return isUnitAlly(
|
|
@@ -674,6 +795,10 @@ end
|
|
|
674
795
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
796
|
queueUnitAnimation(self.handle, animation)
|
|
676
797
|
end
|
|
798
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
799
|
+
self[103] = (self[103] or 0) + 1
|
|
800
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
801
|
+
end
|
|
677
802
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
803
|
setUnitPosition(self.handle, x, y)
|
|
679
804
|
end
|
|
@@ -687,8 +812,15 @@ end
|
|
|
687
812
|
function Unit.prototype.kill(self)
|
|
688
813
|
killUnit(self.handle)
|
|
689
814
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
815
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
816
|
+
local ____ReviveHero_5 = ReviveHero
|
|
817
|
+
local ____array_4 = __TS__SparseArrayNew(self.handle, x, y)
|
|
818
|
+
local ____doEffect_3 = doEffect
|
|
819
|
+
if ____doEffect_3 == nil then
|
|
820
|
+
____doEffect_3 = false
|
|
821
|
+
end
|
|
822
|
+
__TS__SparseArrayPush(____array_4, ____doEffect_3)
|
|
823
|
+
____ReviveHero_5(__TS__SparseArraySpread(____array_4))
|
|
692
824
|
end
|
|
693
825
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
826
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -728,7 +860,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
860
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
861
|
end
|
|
730
862
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
863
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
864
|
end
|
|
733
865
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
866
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -784,6 +916,9 @@ end
|
|
|
784
916
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
917
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
918
|
end
|
|
919
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
920
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
921
|
+
end
|
|
787
922
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
923
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
924
|
end
|
|
@@ -794,8 +929,15 @@ function Unit.prototype.interruptAttack(self)
|
|
|
794
929
|
unitInterruptAttack(self.handle)
|
|
795
930
|
end
|
|
796
931
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
797
|
-
|
|
798
|
-
unitDisableAbility(
|
|
932
|
+
local handle = self.handle
|
|
933
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
934
|
+
Timer:run(
|
|
935
|
+
unitDisableAbility,
|
|
936
|
+
handle,
|
|
937
|
+
abilityId,
|
|
938
|
+
false,
|
|
939
|
+
false
|
|
940
|
+
)
|
|
799
941
|
end
|
|
800
942
|
function Unit.prototype.getDistanceTo(self, target)
|
|
801
943
|
local handle = self.handle
|
|
@@ -855,18 +997,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
855
997
|
self:decrementStunCounter()
|
|
856
998
|
end
|
|
857
999
|
function Unit.prototype.incrementStunCounter(self)
|
|
858
|
-
local stunCounter = self[
|
|
859
|
-
if not self[
|
|
1000
|
+
local stunCounter = self[102] or 0
|
|
1001
|
+
if not self[101] or stunCounter >= 0 then
|
|
860
1002
|
BlzPauseUnitEx(self.handle, true)
|
|
861
1003
|
end
|
|
862
|
-
self[
|
|
1004
|
+
self[102] = stunCounter + 1
|
|
863
1005
|
end
|
|
864
1006
|
function Unit.prototype.decrementStunCounter(self)
|
|
865
|
-
local stunCounter = self[
|
|
866
|
-
if not self[
|
|
1007
|
+
local stunCounter = self[102] or 0
|
|
1008
|
+
if not self[101] or stunCounter >= 1 then
|
|
867
1009
|
BlzPauseUnitEx(self.handle, false)
|
|
868
1010
|
end
|
|
869
|
-
self[
|
|
1011
|
+
self[102] = stunCounter - 1
|
|
870
1012
|
end
|
|
871
1013
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
872
1014
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -968,8 +1110,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
968
1110
|
)
|
|
969
1111
|
return targetCollection
|
|
970
1112
|
end
|
|
971
|
-
function Unit.getSelectionOf(self, player)
|
|
972
|
-
|
|
1113
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1114
|
+
if target == nil then
|
|
1115
|
+
target = {}
|
|
1116
|
+
end
|
|
1117
|
+
targetCollection = target
|
|
973
1118
|
targetCollectionNextIndex = 1
|
|
974
1119
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
975
1120
|
return targetCollection
|
|
@@ -991,6 +1136,9 @@ end
|
|
|
991
1136
|
function Unit.prototype.__tostring(self)
|
|
992
1137
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
993
1138
|
end
|
|
1139
|
+
function Unit.getBySyncId(self, syncId)
|
|
1140
|
+
return unitBySyncId[syncId]
|
|
1141
|
+
end
|
|
994
1142
|
__TS__SetDescriptor(
|
|
995
1143
|
Unit.prototype,
|
|
996
1144
|
"_deltas",
|
|
@@ -1071,12 +1219,27 @@ __TS__SetDescriptor(
|
|
|
1071
1219
|
Unit.prototype,
|
|
1072
1220
|
"weapons",
|
|
1073
1221
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1222
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1223
|
+
end},
|
|
1224
|
+
true
|
|
1225
|
+
)
|
|
1226
|
+
__TS__SetDescriptor(
|
|
1227
|
+
Unit.prototype,
|
|
1228
|
+
"firstWeapon",
|
|
1229
|
+
{get = function(self)
|
|
1230
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1231
|
+
rawset(self, "firstWeapon", weapon)
|
|
1232
|
+
return weapon
|
|
1233
|
+
end},
|
|
1234
|
+
true
|
|
1235
|
+
)
|
|
1236
|
+
__TS__SetDescriptor(
|
|
1237
|
+
Unit.prototype,
|
|
1238
|
+
"secondWeapon",
|
|
1239
|
+
{get = function(self)
|
|
1240
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1241
|
+
rawset(self, "secondWeapon", weapon)
|
|
1242
|
+
return weapon
|
|
1080
1243
|
end},
|
|
1081
1244
|
true
|
|
1082
1245
|
)
|
|
@@ -1233,17 +1396,17 @@ __TS__SetDescriptor(
|
|
|
1233
1396
|
"isTeamGlowVisible",
|
|
1234
1397
|
{
|
|
1235
1398
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1399
|
+
return not self[106]
|
|
1237
1400
|
end,
|
|
1238
1401
|
set = function(self, isTeamGlowVisible)
|
|
1239
1402
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1240
|
-
local
|
|
1403
|
+
local ____temp_6
|
|
1241
1404
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1405
|
+
____temp_6 = true
|
|
1243
1406
|
else
|
|
1244
|
-
|
|
1407
|
+
____temp_6 = nil
|
|
1245
1408
|
end
|
|
1246
|
-
self[
|
|
1409
|
+
self[106] = ____temp_6
|
|
1247
1410
|
end
|
|
1248
1411
|
},
|
|
1249
1412
|
true
|
|
@@ -1253,7 +1416,7 @@ __TS__SetDescriptor(
|
|
|
1253
1416
|
"color",
|
|
1254
1417
|
{set = function(self, color)
|
|
1255
1418
|
setUnitColor(self.handle, color.handle)
|
|
1256
|
-
if self[
|
|
1419
|
+
if self[106] then
|
|
1257
1420
|
showUnitTeamGlow(self.handle, false)
|
|
1258
1421
|
end
|
|
1259
1422
|
end},
|
|
@@ -1277,10 +1440,14 @@ __TS__SetDescriptor(
|
|
|
1277
1440
|
"maxHealth",
|
|
1278
1441
|
{
|
|
1279
1442
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1443
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1281
1444
|
end,
|
|
1282
1445
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1446
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1447
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1448
|
+
maxHealth = 1
|
|
1449
|
+
end
|
|
1450
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1284
1451
|
end
|
|
1285
1452
|
},
|
|
1286
1453
|
true
|
|
@@ -1322,10 +1489,10 @@ __TS__SetDescriptor(
|
|
|
1322
1489
|
"health",
|
|
1323
1490
|
{
|
|
1324
1491
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1492
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1326
1493
|
end,
|
|
1327
1494
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1495
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1329
1496
|
end
|
|
1330
1497
|
},
|
|
1331
1498
|
true
|
|
@@ -1536,17 +1703,17 @@ __TS__SetDescriptor(
|
|
|
1536
1703
|
set = function(self, isPaused)
|
|
1537
1704
|
local handle = self.handle
|
|
1538
1705
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
for _ = self[
|
|
1706
|
+
self[101] = true
|
|
1707
|
+
for _ = self[102] or 0, -1 do
|
|
1541
1708
|
BlzPauseUnitEx(handle, true)
|
|
1542
1709
|
end
|
|
1543
1710
|
PauseUnit(handle, true)
|
|
1544
1711
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1712
|
PauseUnit(handle, false)
|
|
1546
|
-
for _ = self[
|
|
1713
|
+
for _ = self[102] or 0, -1 do
|
|
1547
1714
|
BlzPauseUnitEx(handle, false)
|
|
1548
1715
|
end
|
|
1549
|
-
self[
|
|
1716
|
+
self[101] = nil
|
|
1550
1717
|
end
|
|
1551
1718
|
end
|
|
1552
1719
|
},
|
|
@@ -1903,7 +2070,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2070
|
Unit.onResurrect = __TS__New(
|
|
1904
2071
|
InitializingEvent,
|
|
1905
2072
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2073
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2074
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2075
|
dead[unit] = true
|
|
@@ -1919,10 +2085,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2085
|
Unit.morphEvent = __TS__New(
|
|
1920
2086
|
InitializingEvent,
|
|
1921
2087
|
function(event)
|
|
2088
|
+
local function ifNotLeft(unit)
|
|
2089
|
+
local handle = unit.handle
|
|
2090
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2091
|
+
invoke(event, unit)
|
|
2092
|
+
end
|
|
2093
|
+
end
|
|
1922
2094
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2095
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2096
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2097
|
end
|
|
1927
2098
|
end)
|
|
1928
2099
|
end
|
|
@@ -1960,27 +2131,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2131
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2132
|
InitializingEvent,
|
|
1962
2133
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2134
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2135
|
+
local ____GetSpellTargetUnit_result_9
|
|
1966
2136
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2137
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2138
|
else
|
|
1969
|
-
local
|
|
2139
|
+
local ____GetSpellTargetItem_result_8
|
|
1970
2140
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2141
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1972
2142
|
else
|
|
1973
|
-
local
|
|
2143
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1974
2144
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2145
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2146
|
else
|
|
1977
|
-
|
|
2147
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
1978
2148
|
end
|
|
1979
|
-
|
|
2149
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
1980
2150
|
end
|
|
1981
|
-
|
|
2151
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
1982
2152
|
end
|
|
1983
|
-
local target =
|
|
2153
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
1984
2154
|
if target then
|
|
1985
2155
|
invoke(event, unit, id, target)
|
|
1986
2156
|
end
|
|
@@ -2152,10 +2322,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2152
2322
|
____exports.UnitTriggerEvent,
|
|
2153
2323
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2154
2324
|
function()
|
|
2155
|
-
local
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2325
|
+
local handle = getOrderedUnit()
|
|
2326
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2327
|
+
local unit = ____exports.Unit:of(handle)
|
|
2328
|
+
if unit.state == 1 then
|
|
2329
|
+
return unit, getIssuedOrderId()
|
|
2330
|
+
end
|
|
2159
2331
|
end
|
|
2160
2332
|
return IgnoreEvent
|
|
2161
2333
|
end
|
|
@@ -2177,7 +2349,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2349
|
)
|
|
2178
2350
|
Unit.onDamaging = (function()
|
|
2179
2351
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2352
|
local trigger = CreateTrigger()
|
|
2182
2353
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2354
|
TriggerAddCondition(
|
|
@@ -2276,7 +2447,6 @@ end)()
|
|
|
2276
2447
|
Unit.onDamage = __TS__New(
|
|
2277
2448
|
InitializingEvent,
|
|
2278
2449
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2450
|
local trigger = CreateTrigger()
|
|
2281
2451
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2452
|
TriggerAddCondition(
|
|
@@ -2292,6 +2462,7 @@ Unit.onDamage = __TS__New(
|
|
|
2292
2462
|
damageType = BlzGetEventDamageType(),
|
|
2293
2463
|
weaponType = BlzGetEventWeaponType(),
|
|
2294
2464
|
isAttack = BlzGetEventIsAttack(),
|
|
2465
|
+
originalAmount = GetEventDamage(),
|
|
2295
2466
|
preventDeath = damageEventPreventDeath
|
|
2296
2467
|
}
|
|
2297
2468
|
local evData = setmetatable(
|
|
@@ -2308,7 +2479,7 @@ Unit.onDamage = __TS__New(
|
|
|
2308
2479
|
invoke(event, source, target, evData)
|
|
2309
2480
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2481
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2482
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2312
2483
|
BlzSetUnitMaxHP(
|
|
2313
2484
|
target.handle,
|
|
2314
2485
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2493,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2493
|
evData[0],
|
|
2323
2494
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2495
|
)
|
|
2325
|
-
target[
|
|
2496
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2326
2497
|
SetWidgetLife(
|
|
2327
2498
|
target.handle,
|
|
2328
2499
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,7 +2513,7 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2513
|
DestroyTrigger(trigger)
|
|
2343
2514
|
end
|
|
2344
2515
|
)
|
|
2345
|
-
Unit.
|
|
2516
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2517
|
____exports.UnitTriggerEvent,
|
|
2347
2518
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2519
|
function()
|
|
@@ -2353,7 +2524,7 @@ Unit.onItemDrop = __TS__New(
|
|
|
2353
2524
|
return IgnoreEvent
|
|
2354
2525
|
end
|
|
2355
2526
|
)
|
|
2356
|
-
Unit.
|
|
2527
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2528
|
____exports.UnitTriggerEvent,
|
|
2358
2529
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2530
|
function()
|
|
@@ -2364,10 +2535,66 @@ Unit.onItemPickup = __TS__New(
|
|
|
2364
2535
|
return IgnoreEvent
|
|
2365
2536
|
end
|
|
2366
2537
|
)
|
|
2367
|
-
Unit.
|
|
2538
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2539
|
____exports.UnitTriggerEvent,
|
|
2369
2540
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function()
|
|
2541
|
+
function()
|
|
2542
|
+
local unit = getTriggerUnit()
|
|
2543
|
+
if getUnitTypeId(unit) ~= dummyUnitId then
|
|
2544
|
+
return ____exports.Unit:of(unit), Item:of(getManipulatedItem())
|
|
2545
|
+
end
|
|
2546
|
+
return IgnoreEvent
|
|
2547
|
+
end
|
|
2548
|
+
)
|
|
2549
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2550
|
+
____exports.UnitTriggerEvent,
|
|
2551
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2552
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2553
|
+
)
|
|
2554
|
+
__TS__ObjectDefineProperty(
|
|
2555
|
+
Unit,
|
|
2556
|
+
"itemUseOrderEvent",
|
|
2557
|
+
{get = function(self)
|
|
2558
|
+
local event = __TS__New(Event)
|
|
2559
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2560
|
+
local slot = order - orderId("useslot0")
|
|
2561
|
+
local function listener(unit)
|
|
2562
|
+
local item = unit.items[slot + 1]
|
|
2563
|
+
if item ~= nil then
|
|
2564
|
+
invoke(event, unit, item)
|
|
2565
|
+
end
|
|
2566
|
+
end
|
|
2567
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2568
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2569
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2570
|
+
end
|
|
2571
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2572
|
+
return event
|
|
2573
|
+
end}
|
|
2574
|
+
)
|
|
2575
|
+
__TS__ObjectDefineProperty(
|
|
2576
|
+
Unit,
|
|
2577
|
+
"itemMoveOrderEvent",
|
|
2578
|
+
{get = function(self)
|
|
2579
|
+
local event = __TS__New(Event)
|
|
2580
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2581
|
+
local slotTo = order - orderId("moveslot0")
|
|
2582
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2583
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2584
|
+
if slotFrom ~= nil then
|
|
2585
|
+
invoke(
|
|
2586
|
+
event,
|
|
2587
|
+
unit,
|
|
2588
|
+
item,
|
|
2589
|
+
slotFrom,
|
|
2590
|
+
slotTo
|
|
2591
|
+
)
|
|
2592
|
+
end
|
|
2593
|
+
end)
|
|
2594
|
+
end
|
|
2595
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2596
|
+
return event
|
|
2597
|
+
end}
|
|
2371
2598
|
)
|
|
2372
2599
|
__TS__ObjectDefineProperty(
|
|
2373
2600
|
Unit,
|