warscript 0.0.1-dev.58c74da → 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 +0 -1
- 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/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 +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 +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 +52 -18
- package/engine/internal/unit.lua +338 -136
- 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 +21 -2
- package/engine/object-data/entry/unit-type.lua +223 -49
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +0 -1
- package/engine/object-data/entry.d.ts +2 -3
- package/engine/object-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 +18 -0
- package/engine/standard/entries/unit-type.lua +18 -0
- 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/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -13
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +16 -0
- package/string.lua +5 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +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 +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
|
|
@@ -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
|
|
@@ -521,15 +619,15 @@ for ____, player in ipairs(Player.all) do
|
|
|
521
619
|
dummies[player] = dummy
|
|
522
620
|
end
|
|
523
621
|
local function delayHealthChecksCallback(unit)
|
|
524
|
-
local counter = (unit[
|
|
622
|
+
local counter = (unit[103] or 0) - 1
|
|
525
623
|
if counter ~= 0 then
|
|
526
|
-
unit[
|
|
624
|
+
unit[103] = counter
|
|
527
625
|
return
|
|
528
626
|
end
|
|
529
|
-
unit[
|
|
530
|
-
local healthBonus = unit[
|
|
627
|
+
unit[103] = nil
|
|
628
|
+
local healthBonus = unit[104]
|
|
531
629
|
if healthBonus ~= nil then
|
|
532
|
-
unit[
|
|
630
|
+
unit[104] = nil
|
|
533
631
|
local handle = unit.handle
|
|
534
632
|
BlzSetUnitMaxHP(
|
|
535
633
|
handle,
|
|
@@ -537,12 +635,17 @@ local function delayHealthChecksCallback(unit)
|
|
|
537
635
|
)
|
|
538
636
|
end
|
|
539
637
|
end
|
|
638
|
+
local nextSyncId = 1
|
|
639
|
+
local unitBySyncId = setmetatable({}, {__mode = "k"})
|
|
540
640
|
____exports.Unit = __TS__Class()
|
|
541
641
|
local Unit = ____exports.Unit
|
|
542
642
|
Unit.name = "Unit"
|
|
543
643
|
__TS__ClassExtends(Unit, Handle)
|
|
544
644
|
function Unit.prototype.____constructor(self, handle)
|
|
545
645
|
Handle.prototype.____constructor(self, handle)
|
|
646
|
+
local ____nextSyncId_0 = nextSyncId
|
|
647
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
648
|
+
self.syncId = ____nextSyncId_0
|
|
546
649
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
547
650
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
548
651
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -555,6 +658,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
555
658
|
fourCC("Amrf")
|
|
556
659
|
))
|
|
557
660
|
end
|
|
661
|
+
unitBySyncId[self.syncId] = self
|
|
558
662
|
local ____ = self.abilities
|
|
559
663
|
end
|
|
560
664
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -640,8 +744,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
640
744
|
end}
|
|
641
745
|
end
|
|
642
746
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
643
|
-
local
|
|
644
|
-
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
|
|
645
749
|
end
|
|
646
750
|
function Unit.prototype.addClassification(self, classification)
|
|
647
751
|
return unitAddType(self.handle, classification)
|
|
@@ -659,13 +763,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
659
763
|
return isUnitInvisible(self.handle, player.handle)
|
|
660
764
|
end
|
|
661
765
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
662
|
-
local
|
|
766
|
+
local ____temp_2
|
|
663
767
|
if type(x) == "number" then
|
|
664
|
-
|
|
768
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
665
769
|
else
|
|
666
|
-
|
|
770
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
667
771
|
end
|
|
668
|
-
return
|
|
772
|
+
return ____temp_2
|
|
669
773
|
end
|
|
670
774
|
function Unit.prototype.isAllyOf(self, unit)
|
|
671
775
|
return isUnitAlly(
|
|
@@ -692,7 +796,7 @@ function Unit.prototype.queueAnimation(self, animation)
|
|
|
692
796
|
queueUnitAnimation(self.handle, animation)
|
|
693
797
|
end
|
|
694
798
|
function Unit.prototype.delayHealthChecks(self)
|
|
695
|
-
self[
|
|
799
|
+
self[103] = (self[103] or 0) + 1
|
|
696
800
|
Timer:run(delayHealthChecksCallback, self)
|
|
697
801
|
end
|
|
698
802
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -708,8 +812,15 @@ end
|
|
|
708
812
|
function Unit.prototype.kill(self)
|
|
709
813
|
killUnit(self.handle)
|
|
710
814
|
end
|
|
711
|
-
function Unit.prototype.revive(self,
|
|
712
|
-
|
|
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))
|
|
713
824
|
end
|
|
714
825
|
function Unit.prototype.healTarget(self, target, amount)
|
|
715
826
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -749,7 +860,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
749
860
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
750
861
|
end
|
|
751
862
|
function Unit.prototype.itemInSlot(self, slot)
|
|
752
|
-
return Item:of(
|
|
863
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
753
864
|
end
|
|
754
865
|
function Unit.prototype.addAbility(self, abilityId)
|
|
755
866
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -805,6 +916,9 @@ end
|
|
|
805
916
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
806
917
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
807
918
|
end
|
|
919
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
920
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
921
|
+
end
|
|
808
922
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
809
923
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
810
924
|
end
|
|
@@ -815,8 +929,15 @@ function Unit.prototype.interruptAttack(self)
|
|
|
815
929
|
unitInterruptAttack(self.handle)
|
|
816
930
|
end
|
|
817
931
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
818
|
-
|
|
819
|
-
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
|
+
)
|
|
820
941
|
end
|
|
821
942
|
function Unit.prototype.getDistanceTo(self, target)
|
|
822
943
|
local handle = self.handle
|
|
@@ -876,18 +997,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
876
997
|
self:decrementStunCounter()
|
|
877
998
|
end
|
|
878
999
|
function Unit.prototype.incrementStunCounter(self)
|
|
879
|
-
local stunCounter = self[
|
|
880
|
-
if not self[
|
|
1000
|
+
local stunCounter = self[102] or 0
|
|
1001
|
+
if not self[101] or stunCounter >= 0 then
|
|
881
1002
|
BlzPauseUnitEx(self.handle, true)
|
|
882
1003
|
end
|
|
883
|
-
self[
|
|
1004
|
+
self[102] = stunCounter + 1
|
|
884
1005
|
end
|
|
885
1006
|
function Unit.prototype.decrementStunCounter(self)
|
|
886
|
-
local stunCounter = self[
|
|
887
|
-
if not self[
|
|
1007
|
+
local stunCounter = self[102] or 0
|
|
1008
|
+
if not self[101] or stunCounter >= 1 then
|
|
888
1009
|
BlzPauseUnitEx(self.handle, false)
|
|
889
1010
|
end
|
|
890
|
-
self[
|
|
1011
|
+
self[102] = stunCounter - 1
|
|
891
1012
|
end
|
|
892
1013
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
893
1014
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -989,8 +1110,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
989
1110
|
)
|
|
990
1111
|
return targetCollection
|
|
991
1112
|
end
|
|
992
|
-
function Unit.getSelectionOf(self, player)
|
|
993
|
-
|
|
1113
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1114
|
+
if target == nil then
|
|
1115
|
+
target = {}
|
|
1116
|
+
end
|
|
1117
|
+
targetCollection = target
|
|
994
1118
|
targetCollectionNextIndex = 1
|
|
995
1119
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
996
1120
|
return targetCollection
|
|
@@ -1012,6 +1136,9 @@ end
|
|
|
1012
1136
|
function Unit.prototype.__tostring(self)
|
|
1013
1137
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1014
1138
|
end
|
|
1139
|
+
function Unit.getBySyncId(self, syncId)
|
|
1140
|
+
return unitBySyncId[syncId]
|
|
1141
|
+
end
|
|
1015
1142
|
__TS__SetDescriptor(
|
|
1016
1143
|
Unit.prototype,
|
|
1017
1144
|
"_deltas",
|
|
@@ -1092,12 +1219,27 @@ __TS__SetDescriptor(
|
|
|
1092
1219
|
Unit.prototype,
|
|
1093
1220
|
"weapons",
|
|
1094
1221
|
{get = function(self)
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
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
|
|
1101
1243
|
end},
|
|
1102
1244
|
true
|
|
1103
1245
|
)
|
|
@@ -1254,17 +1396,17 @@ __TS__SetDescriptor(
|
|
|
1254
1396
|
"isTeamGlowVisible",
|
|
1255
1397
|
{
|
|
1256
1398
|
get = function(self)
|
|
1257
|
-
return not self[
|
|
1399
|
+
return not self[106]
|
|
1258
1400
|
end,
|
|
1259
1401
|
set = function(self, isTeamGlowVisible)
|
|
1260
1402
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1261
|
-
local
|
|
1403
|
+
local ____temp_6
|
|
1262
1404
|
if not isTeamGlowVisible then
|
|
1263
|
-
|
|
1405
|
+
____temp_6 = true
|
|
1264
1406
|
else
|
|
1265
|
-
|
|
1407
|
+
____temp_6 = nil
|
|
1266
1408
|
end
|
|
1267
|
-
self[
|
|
1409
|
+
self[106] = ____temp_6
|
|
1268
1410
|
end
|
|
1269
1411
|
},
|
|
1270
1412
|
true
|
|
@@ -1274,7 +1416,7 @@ __TS__SetDescriptor(
|
|
|
1274
1416
|
"color",
|
|
1275
1417
|
{set = function(self, color)
|
|
1276
1418
|
setUnitColor(self.handle, color.handle)
|
|
1277
|
-
if self[
|
|
1419
|
+
if self[106] then
|
|
1278
1420
|
showUnitTeamGlow(self.handle, false)
|
|
1279
1421
|
end
|
|
1280
1422
|
end},
|
|
@@ -1298,14 +1440,14 @@ __TS__SetDescriptor(
|
|
|
1298
1440
|
"maxHealth",
|
|
1299
1441
|
{
|
|
1300
1442
|
get = function(self)
|
|
1301
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1443
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1302
1444
|
end,
|
|
1303
1445
|
set = function(self, maxHealth)
|
|
1304
|
-
if maxHealth < 1 and self[
|
|
1305
|
-
self[
|
|
1446
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1447
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1306
1448
|
maxHealth = 1
|
|
1307
1449
|
end
|
|
1308
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1450
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1309
1451
|
end
|
|
1310
1452
|
},
|
|
1311
1453
|
true
|
|
@@ -1347,10 +1489,10 @@ __TS__SetDescriptor(
|
|
|
1347
1489
|
"health",
|
|
1348
1490
|
{
|
|
1349
1491
|
get = function(self)
|
|
1350
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1492
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1351
1493
|
end,
|
|
1352
1494
|
set = function(self, health)
|
|
1353
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1495
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1354
1496
|
end
|
|
1355
1497
|
},
|
|
1356
1498
|
true
|
|
@@ -1561,17 +1703,17 @@ __TS__SetDescriptor(
|
|
|
1561
1703
|
set = function(self, isPaused)
|
|
1562
1704
|
local handle = self.handle
|
|
1563
1705
|
if isPaused and not IsUnitPaused(handle) then
|
|
1564
|
-
self[
|
|
1565
|
-
for _ = self[
|
|
1706
|
+
self[101] = true
|
|
1707
|
+
for _ = self[102] or 0, -1 do
|
|
1566
1708
|
BlzPauseUnitEx(handle, true)
|
|
1567
1709
|
end
|
|
1568
1710
|
PauseUnit(handle, true)
|
|
1569
1711
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1570
1712
|
PauseUnit(handle, false)
|
|
1571
|
-
for _ = self[
|
|
1713
|
+
for _ = self[102] or 0, -1 do
|
|
1572
1714
|
BlzPauseUnitEx(handle, false)
|
|
1573
1715
|
end
|
|
1574
|
-
self[
|
|
1716
|
+
self[101] = nil
|
|
1575
1717
|
end
|
|
1576
1718
|
end
|
|
1577
1719
|
},
|
|
@@ -1928,7 +2070,6 @@ Unit.onDecay = __TS__New(
|
|
|
1928
2070
|
Unit.onResurrect = __TS__New(
|
|
1929
2071
|
InitializingEvent,
|
|
1930
2072
|
function(event)
|
|
1931
|
-
local invoke = Event.invoke
|
|
1932
2073
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1933
2074
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1934
2075
|
dead[unit] = true
|
|
@@ -1944,10 +2085,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1944
2085
|
Unit.morphEvent = __TS__New(
|
|
1945
2086
|
InitializingEvent,
|
|
1946
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
|
|
1947
2094
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1948
2095
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1949
|
-
|
|
1950
|
-
Timer:run(Event.invoke, event, unit)
|
|
2096
|
+
Timer:run(ifNotLeft, unit)
|
|
1951
2097
|
end
|
|
1952
2098
|
end)
|
|
1953
2099
|
end
|
|
@@ -1985,27 +2131,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1985
2131
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1986
2132
|
InitializingEvent,
|
|
1987
2133
|
function(event)
|
|
1988
|
-
local invoke = Event.invoke
|
|
1989
2134
|
local function listener(unit, id)
|
|
1990
|
-
local
|
|
2135
|
+
local ____GetSpellTargetUnit_result_9
|
|
1991
2136
|
if GetSpellTargetUnit() then
|
|
1992
|
-
|
|
2137
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1993
2138
|
else
|
|
1994
|
-
local
|
|
2139
|
+
local ____GetSpellTargetItem_result_8
|
|
1995
2140
|
if GetSpellTargetItem() then
|
|
1996
|
-
|
|
2141
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1997
2142
|
else
|
|
1998
|
-
local
|
|
2143
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1999
2144
|
if GetSpellTargetDestructable() then
|
|
2000
|
-
|
|
2145
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
2001
2146
|
else
|
|
2002
|
-
|
|
2147
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
2003
2148
|
end
|
|
2004
|
-
|
|
2149
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
2005
2150
|
end
|
|
2006
|
-
|
|
2151
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
2007
2152
|
end
|
|
2008
|
-
local target =
|
|
2153
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
2009
2154
|
if target then
|
|
2010
2155
|
invoke(event, unit, id, target)
|
|
2011
2156
|
end
|
|
@@ -2177,10 +2322,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2177
2322
|
____exports.UnitTriggerEvent,
|
|
2178
2323
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2179
2324
|
function()
|
|
2180
|
-
local
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
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
|
|
2184
2331
|
end
|
|
2185
2332
|
return IgnoreEvent
|
|
2186
2333
|
end
|
|
@@ -2202,7 +2349,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2202
2349
|
)
|
|
2203
2350
|
Unit.onDamaging = (function()
|
|
2204
2351
|
local event = __TS__New(Event)
|
|
2205
|
-
local invoke = Event.invoke
|
|
2206
2352
|
local trigger = CreateTrigger()
|
|
2207
2353
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2208
2354
|
TriggerAddCondition(
|
|
@@ -2301,7 +2447,6 @@ end)()
|
|
|
2301
2447
|
Unit.onDamage = __TS__New(
|
|
2302
2448
|
InitializingEvent,
|
|
2303
2449
|
function(event)
|
|
2304
|
-
local invoke = Event.invoke
|
|
2305
2450
|
local trigger = CreateTrigger()
|
|
2306
2451
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2307
2452
|
TriggerAddCondition(
|
|
@@ -2317,6 +2462,7 @@ Unit.onDamage = __TS__New(
|
|
|
2317
2462
|
damageType = BlzGetEventDamageType(),
|
|
2318
2463
|
weaponType = BlzGetEventWeaponType(),
|
|
2319
2464
|
isAttack = BlzGetEventIsAttack(),
|
|
2465
|
+
originalAmount = GetEventDamage(),
|
|
2320
2466
|
preventDeath = damageEventPreventDeath
|
|
2321
2467
|
}
|
|
2322
2468
|
local evData = setmetatable(
|
|
@@ -2333,7 +2479,7 @@ Unit.onDamage = __TS__New(
|
|
|
2333
2479
|
invoke(event, source, target, evData)
|
|
2334
2480
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2335
2481
|
local bonusHealth = math.ceil(evData.amount)
|
|
2336
|
-
target[
|
|
2482
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2337
2483
|
BlzSetUnitMaxHP(
|
|
2338
2484
|
target.handle,
|
|
2339
2485
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2347,7 +2493,7 @@ Unit.onDamage = __TS__New(
|
|
|
2347
2493
|
evData[0],
|
|
2348
2494
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2349
2495
|
)
|
|
2350
|
-
target[
|
|
2496
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2351
2497
|
SetWidgetLife(
|
|
2352
2498
|
target.handle,
|
|
2353
2499
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2367,7 +2513,7 @@ Unit.onDamage = __TS__New(
|
|
|
2367
2513
|
DestroyTrigger(trigger)
|
|
2368
2514
|
end
|
|
2369
2515
|
)
|
|
2370
|
-
Unit.
|
|
2516
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2371
2517
|
____exports.UnitTriggerEvent,
|
|
2372
2518
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2373
2519
|
function()
|
|
@@ -2378,7 +2524,7 @@ Unit.onItemDrop = __TS__New(
|
|
|
2378
2524
|
return IgnoreEvent
|
|
2379
2525
|
end
|
|
2380
2526
|
)
|
|
2381
|
-
Unit.
|
|
2527
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2382
2528
|
____exports.UnitTriggerEvent,
|
|
2383
2529
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2384
2530
|
function()
|
|
@@ -2389,10 +2535,66 @@ Unit.onItemPickup = __TS__New(
|
|
|
2389
2535
|
return IgnoreEvent
|
|
2390
2536
|
end
|
|
2391
2537
|
)
|
|
2392
|
-
Unit.
|
|
2538
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2393
2539
|
____exports.UnitTriggerEvent,
|
|
2394
2540
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2395
|
-
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}
|
|
2396
2598
|
)
|
|
2397
2599
|
__TS__ObjectDefineProperty(
|
|
2398
2600
|
Unit,
|